AutoHotKey按键中断循环

时间:2013-04-24 23:20:00

标签: loops autohotkey break

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

以下是代码:

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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 

答案 2 :(得分: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一段时间时,您的循环将停止。

答案 3 :(得分:0)

切换全局变量是可行的方法。您需要在脚本的开头声明它。

global keep_working = 1;在脚本开头设置break为off

b ::;设置休息时间     keep_working = 0 返回

g ::;设置工作并启动循环 keep_working = 1
循环,;循环直到按下b(循环,原始代码为20) {     MouseClick,left,142,542     睡觉,1000     MouseClick,left,138,567     睡觉,1500     MouseClick,left,97,538     睡觉,1000     if(keep_working = 0)     {         回归;需要停止执行     } } 回归;在热键程序结束时需要这个分隔符。