我刚刚从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