Autohotkey单击脚本



我刚刚从Autohotkey开始,我希望制作一个脚本,每秒单击一次10次,然后在重置之前按住右鼠标按钮3秒。我打算在Alt C上进行活动,并按下左鼠标按钮。

我想出的脚本

LButton::
BreakLoop = 1
return
!c::
Loop
{
if (BreakLoop = 1)
break
;
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Send, {RButton Down}
Sleep, 3000
Send, {RButton Up}
Return
}

但是,这行不通。有没有办法解决此问题,或者我对此脚本采取了完全错误的方法?

您确实在代码中犯了一个错误,在底部,您确实将 return 命令命令到 loop >。(此返回

代码必须像:

~LButton::
BreakLoop = 1
return
!c::
Loop
{
if (BreakLoop = 1)
break
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Click
Sleep, 1000
Send, {RButton Down}
Sleep, 3000
Send, {RButton Up}
}
Return

提示:如果您更改lbutton :: in 〜lbutton ::,则默认的左键也很活跃。

我实际上能够找到一种方法,通过将循环嵌套在循环中

来显着(并更快地打破循环)
!s::
BreakLoop = 1
return

!c::
BreakLoop = 0
Loop
{
Loop 10
{
if (BreakLoop = 1)
break
;
Click
Sleep, 900
}
Send, {RButton Down}
Sleep, 3000
Send, {RButton Up}
}
if (BreakLoop = 1)
Break
;
Return

一种更好的方法是使用settimer,这使您可以在操作顺序的任何时候突破循环。

尝试:

!c::setTimer, doAction, 1000
!s::SetTimer, doAction, Off 
doAction:
    i += (i <= 14 ? 1 : -13)
    if (i == 14)
        send, {RButton Up}
    else if (i == 11 )
        Send, {RButton Down}
    else if (i <= 10) 
        click   
return

最新更新