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