在Autohotkey中使用循环的简单按键脚本

问题描述:

每当您按w时,您都会进入一个循环,每10秒钟按一下e。必须再次按下另一个按钮以随时离开(并且可以重新开始)。这是我到目前为止:在Autohotkey中使用循环的简单按键脚本

w:: 
Loop 
{ 
Send, e 
Random, SleepAmount, 9000, 10000 
Sleep, %SleepAmount% 
x::Break 
} 
Return 

我不明白为什么它还没有工作。它会按下一次,之后再也不会做任何事了。

x::Break 

x:: 
    break 
return 

短形式,因此终止当前子程序。 永不定义任何其他执行机构内的热键。相反,在w热键之外定义x -hotkey并使其停止循环。

例使用goTo(注意:goSub是不同,后者将不会终止子程序):

w:: 
    Loop { 
     send e 
     Random, SleepAmount, 9000, 10000 
     Sleep, %SleepAmount% 
    } 
    after_loop: 
return 

x:: 
    goTo after_loop 
return 
; or, more compact: 
; x::goto after_loop 

由于goto方法是非常糟糕的编程风格,你可以考虑使用一个timer(而不是环) 。但说实话,这是不值得的,因为你的睡眠量不是固定的。