Macro Recorder struggles

Ask gaming related questions (AHK v1.1 and older)
misterbadatcode
Posts: 4
Joined: 08 May 2021, 12:46

Macro Recorder struggles

Post by misterbadatcode » 08 May 2021, 13:00

Hello, I have been trying to make a macro using this post https://www.autohotkey.com/boards/viewtopic.php?t=73875
However I cant figure out how to make it work. I will post the code below. If someone could make a quick sample below that I could use I'd appreciate it very much. I am very new to this so please keep that in mind. :)

Code: Select all

#SingleInstance,Force
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode 2
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1

;---------------------------------------------------------------------------
SendMouse_LeftClick() { ; send fast left mouse clicks
;---------------------------------------------------------------------------
    DllCall("mouse_event", "UInt", 0x02) ; left button down
    DllCall("mouse_event", "UInt", 0x04) ; left button up
}


;---------------------------------------------------------------------------
SendMouse_RightClick() { ; send fast right mouse clicks
;---------------------------------------------------------------------------
    DllCall("mouse_event", "UInt", 0x08) ; right button down
    DllCall("mouse_event", "UInt", 0x10) ; right button up
}


;---------------------------------------------------------------------------
SendMouse_MiddleClick() { ; send fast middle mouse clicks
;---------------------------------------------------------------------------
    DllCall("mouse_event", "UInt", 0x20) ; middle button down
    DllCall("mouse_event", "UInt", 0x40) ; middle button up
}


;---------------------------------------------------------------------------
SendMouse_RelativeMove(x, y) { ; send fast relative mouse moves
;---------------------------------------------------------------------------
    DllCall("mouse_event", "UInt", 0x01, "UInt", x, "UInt", y) ; move
}


;---------------------------------------------------------------------------
SendMouse_AbsoluteMove(x, y) { ; send fast absolute mouse moves
;---------------------------------------------------------------------------
    ; Absolute coords go from 0..65535 so we have to change to pixel coords
    ;-----------------------------------------------------------------------
    static SysX, SysY
    If (SysX = "")
        SysX := 65535//A_ScreenWidth, SysY := 65535//A_ScreenHeight
    DllCall("mouse_event", "UInt", 0x8001, "UInt", x*SysX, "UInt", y*SysY)
}


;---------------------------------------------------------------------------
SendMouse_Wheel(w) { ; send mouse wheel movement, pos=forwards neg=backwards
;---------------------------------------------------------------------------
    DllCall("mouse_event", "UInt", 0x800, "UInt", 0, "UInt", 0, "UInt", w)
}

QPC_Sleep(S)
{
    global Q,F
    DllCall("QueryPerformanceCounter", "int64*", C1)
    while (((C2 - C1) / F) < S)
        DllCall("QueryPerformanceCounter", "int64*", C2)
    return true
}
QPC(R := 0)
{
	global Q,F
    static P := 0
    return !DllCall("QueryPerformanceCounter", "int64*", Q) + (R ? (P := Q) / F : (Q - P) / F)
}

!F12::
ExitApp
return

LCtrl & ~LButton::
Q := DllCall("QueryPerformanceFrequency", "int64*", F)
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.088562)
SendMouse_RelativeMove(1,0) 
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.088562)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.019952)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.003968)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001969)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.003141)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.002898)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000995)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001984)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000990)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001088)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000919)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001979)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000989)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000982)
SendMouse_RelativeMove(0,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001011)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000989)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001006)
SendMouse_RelativeMove(2,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000991)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001030)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000965)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001022)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000998)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000990)
SendMouse_RelativeMove(2,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001004)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.002090)
SendMouse_RelativeMove(2,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000909)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001014)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000986)
SendMouse_RelativeMove(2,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001009)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000998)
SendMouse_RelativeMove(2,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001006)
SendMouse_RelativeMove(2,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000987)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001010)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001012)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000987)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001006)
SendMouse_RelativeMove(2,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001000)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000995)
SendMouse_RelativeMove(2,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001015)
SendMouse_RelativeMove(1,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000988)
SendMouse_RelativeMove(2,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.001997)
SendMouse_RelativeMove(3,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000997)
SendMouse_RelativeMove(2,1)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000995)
SendMouse_RelativeMove(1,0)
}
else
break
Loop 0
If GetKeyState("LButton", "LCtrl") {
QPC_Sleep(0.000995)
SendMouse_RelativeMove(2,1)
}
else
break

return
[Mod edit: [code][/code] tags fixed. They contained a zero-width space - and didn't work because of this.]

User avatar
mikeyww
Posts: 26882
Joined: 09 Sep 2014, 18:38

Re: Macro Recorder struggles

Post by mikeyww » 08 May 2021, 14:48

What should your macro achieve?

misterbadatcode
Posts: 4
Joined: 08 May 2021, 12:46

Re: Macro Recorder struggles

Post by misterbadatcode » 08 May 2021, 15:09

Well, I want the macro to mimic my mouse movement, which it does with the delta macro. But I want it to last only as long as I keep it pressed. Right now I can get it to do the entire movement, but it wont work when I try to make is stop in the middle of the action so to say.

misterbadatcode
Posts: 4
Joined: 08 May 2021, 12:46

Re: Macro Recorder struggles

Post by misterbadatcode » 08 May 2021, 15:19

Here an example of what I want to do with the 'movement I record with the macro recorder linked above.

Code: Select all

#NoEn
SendMode Input
 
~F8::Suspend
~End::ExitApp
~F11::Reload
 
LCtrl & ~LButton::
Loop 8

   If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-2,3)
    }
    else
    break
Loop 8

   If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(1,3)
    }
    else
    break
Loop 8

   If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-3,3)
    }
    else
    break
Loop 8

   If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-3,3)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-1.5,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(1,3)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(2,1.5)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(1.5,1)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(2,1)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(3,1)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(3,-1)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(3,1)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(1,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(0,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-1.5,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-1.5,3)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-2,1.2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-2,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-2,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-4,1.2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-3,1.5)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-3,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-1,-1)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-1,0.5)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-1,1.5)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(-1,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(1.5,2)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(1.5,3)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(3.5,1)
    }
    else
    break
Loop 8
	If GetKeyState("LButton", "LCtrl") {
        Sleep, 6
        mouseXY(5,2)
    }
    else
    break

		
Return

mouseXY(x,y)
{
DllCall("mouse_event",int,1,int,x,int,y,uint,0,uint,0)
}

User avatar
mikeyww
Posts: 26882
Joined: 09 Sep 2014, 18:38

Re: Macro Recorder struggles

Post by mikeyww » 08 May 2021, 15:42

Since your script does not work, start with just one or two lines, and get those working first, instead of starting with 230 lines and wondering what is going wrong. Here is the syntax for GetKeyState.

misterbadatcode
Posts: 4
Joined: 08 May 2021, 12:46

Re: Macro Recorder struggles

Post by misterbadatcode » 09 May 2021, 06:57

I got it working, thanks for your input.

Post Reply

Return to “Gaming Help (v1)”