我一直在寻找如何让 GUI 按钮充当简单循环的切换按钮。
我被难住了,需要帮助。这是我的代码。
#NoEnv
#SingleInstance force
#MaxThreadsPerHotkey 2
Gui, show, NoActivate w200 h200, TEST
Gui, Add, button, vbutton gbutton w80, button
return
button:
loop {
sendinput, c
sleep, 700
}
return
escape::
exitapp
答案1
您的循环没有可以使其停止的退出条件。
loop
{
while sendingKeys
{
sendinput c
sleep, 700
}
sleep 100
}
您可以将这段代码设置为立即运行(而不是放在按钮子程序中)。您将在循环之前初始化 sendingKeys 以作为程序启动时的默认设置。外循环仍然没有退出条件,它只是永远运行,直到 Escape 触发 ExitApp 事件(这在您的情况下可能工作得很好)。
sendingKeys := False ; make the user toggle first before loop turns on
在按钮子程序中,您只需切换 sendingKeys 变量以在真和假之间切换,当变量改变状态时,这将启动内部循环或停止内部循环。
button:
sendingKeys := not sendingKeys
return
当内循环未执行时,外循环仅轮询并继续运行,直到内循环再次开始执行。