使用 AutoHotKey,我有一个相当简单的循环脚本,我希望能够通过按键来打破它。我尝试了一些来自网站的不同代码,但似乎不起作用。
这是代码:
#g::
Loop 20
{
MouseClick, left, 142, 542
Sleep, 1000
MouseClick, left, 138, 567
Sleep, 1500
MouseClick, left, 97, 538
Sleep, 1000
}
使用 AutoHotKey,我有一个相当简单的循环脚本,我希望能够通过按键来打破它。我尝试了一些来自网站的不同代码,但似乎不起作用。
这是代码:
#g::
Loop 20
{
MouseClick, left, 142, 542
Sleep, 1000
MouseClick, left, 138, 567
Sleep, 1500
MouseClick, left, 97, 538
Sleep, 1000
}
使用全局变量 (keepCycling) 并切换它以中断循环。全局变量应该在脚本的开头声明。
添加全局变量可能是您的情况最简单的解决方案,因为您的循环需要一段时间才能完成。
global break_g = 0
#b::
break_g = 1
return
#g::
break_g = 0
Loop 20
{
MouseClick, left, 142, 542
Sleep, 1000
MouseClick, left, 138, 567
Sleep, 1500
MouseClick, left, 97, 538
Sleep, 1000
if( break_g = 1)
{
return
}
}
return ; also you were missing this return
#g::
Loop 20
{
KeyWait,Ctrl,D T0
if Errorlevel = 0
break
MouseClick, left, 142, 542
KeyWait,Ctrl,D T0
if Errorlevel = 0
break
Sleep, 1000
KeyWait,Ctrl,D T0
if Errorlevel = 0
break
MouseClick, left, 138, 567
KeyWait,Ctrl,D T0
if Errorlevel = 0
break
Sleep, 1500
KeyWait,Ctrl,D T0
if Errorlevel = 0
break
MouseClick, left, 97, 538
KeyWait,Ctrl,D T0
if Errorlevel = 0
break
Sleep, 1000
}
return
使用上述方法可能会有所帮助,因为效果是即时的。通常,当您按住 Ctrl 一段时间时,您的循环会停止。
切换全局变量是要走的路。您需要在脚本的开头声明它。
全局 keep_working = 1 ; 在脚本的开头将 break 设置为 off
乙::; 在keep_working = 0 返回时设置中断
G:: ; 将工作设置为 on 并启动循环 keep_working = 1
Loop, ; 循环直到 b 被按下(是循环,原始代码中的 20){ MouseClick, left, 142, 542 Sleep, 1000 MouseClick, left, 138, 567 Sleep, 1500 MouseClick, left, 97, 538 Sleep, 1000 if( keep_working = 0 ) { 返回 ; 需要停止执行 } } return ; 在热键过程结束时需要此分隔符。