AutoHotKey 点击脚本
AutoHotKey Clicking Script
我才刚刚开始使用 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这是不可能的。 (此 Return 命令将用于 !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
提示:如果将 Lbutton:: 更改为 ~Lbutton::,则默认的 LeftButton 也处于活动状态。
我实际上找到了一种通过在循环中嵌套循环来显着压缩它(并更快地打破循环)的方法
!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
我才刚刚开始使用 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这是不可能的。 (此 Return 命令将用于 !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
提示:如果将 Lbutton:: 更改为 ~Lbutton::,则默认的 LeftButton 也处于活动状态。
我实际上找到了一种通过在循环中嵌套循环来显着压缩它(并更快地打破循环)的方法
!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