LButton启动时如何停止AHK循环

时间:2019-06-28 08:27:17

标签: autohotkey

我只希望此循环在LButton按下时起作用,而在LButton按下时停止。 该代码在LButton按下时起作用,但是当我将手指从左键单击移开时它将继续起作用。

 mem:=0
~*LButton:: 
Sleep, 100
KeyWait, LButton, T0.10
If ErrorLevel = 1
   {
   While GetKeyState("LButton","P")

Loop {
GetKeyState, state, LButton, P
    If state = U
        Break

 MouseGetPos, xpos, ypos

 if (xpos > mem)          ;moved right
    {
     send, {a down}         ;send key
     mem:=xpos
    }
 else
     send, {a up}

 if (xpos < mem)          ;moved left
    {
     send, {d down}
     mem:=xpos
    }
 else
     send, {d up}

  Sleep, 100
}
}
return

1 个答案:

答案 0 :(得分:0)

您的情况与while loop的用法示例非常相似。 如果您看到的是您可以看到的内容,则一会儿不需要循环。拥有

while GetKeyState("LButton")
{
    ; Your code here:
    MouseGetPos, xpos, ypos

    if (xpos > mem)          ;moved right
    {
        send, {a down}         ;send key
        mem:=xpos
    }
    else{
        send, {a up}
    }

    if (xpos < mem)          ;moved left
    {
        send, {d down}
        mem:=xpos
    }
    else{
        send, {d up}
    }

    Sleep, 100
}