7

使用 AutoHotKey,我有一个相当简单的循环脚本,我希望能够通过按键来打破它。我尝试了一些来自网站的不同代码,但似乎不起作用。

这是代码:

#g::
Loop 20
{
    MouseClick, left,  142,  542
    Sleep, 1000
    MouseClick, left,  138,  567
    Sleep, 1500
    MouseClick, left,  97,  538 
    Sleep, 1000
}
4

4 回答 4

2

使用全局变量 (keepCycling) 并切换它以中断循环。全局变量应该在脚本的开头声明。

于 2016-08-07T02:23:41.873 回答
1

添加全局变量可能是您的情况最简单的解决方案,因为您的循环需要一段时间才能完成。

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 
于 2013-04-25T06:03:41.770 回答
0
#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 一段时间时,您的循环会停止。

于 2013-04-25T11:33:54.190 回答
0

切换全局变量是要走的路。您需要在脚本的开头声明它。

全局 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 ; 在热键过程结束时需要此分隔符。

于 2016-08-02T15:19:15.660 回答