【发布时间】:2017-04-20 05:55:53
【问题描述】:
重新加载脚本时如何在 AutoHotKey 上启动无限循环?
加载 AutoHotKey 脚本后,我想启动一个看门狗来监控 Octave 的绘图窗口何时打开。如果是这样,脚本将最大化窗口。
但是,当我重新加载此脚本时,它不会启动,即不显示 Hi 消息框。
#persistent
SetTitleMatchMode 2
Loop
{
MsgBox Hi
WinWait, Figure 1
WinMaximize
Sleep 1000
}
Return
这是脚本之前的代码:
NumpadDot::.
Return
F1::F2
Return
RCtrl::RAlt
Return
#Persistent ; uncomment this line to see the effect
SetTimer, Hello, 1000 ; go to lable hello every second
Hello:
MsgBox Hi
Return
#persistent
SetTitleMatchMode 2
Loop
{
MsgBox Hi
WinWait, Figure 1
WinMaximize
Sleep 1000
}
Return
;
^+8::
Run "D:\User\Documents\AutoHotKey\MyBatches\kill_macro_player.vbs"
参考资料:
【问题讨论】:
-
当我测试你的脚本时,“嗨”在我重新加载时再次出现。我通过右键单击 AutoHotKey 任务栏图标并选择“编辑此脚本”来测试您的脚本。我用你的替换了我的默认脚本并保存了它。然后我再次右键单击任务栏图标并选择“重新加载此脚本”。 “嗨”突然响起。当我右键单击任务栏图标并再次选择“重新加载此脚本”时,“嗨”再次弹出。
-
你贴的代码前后有代码吗?
-
是的,感谢您的尝试。我会将其添加到问题中。我的 AutoHotKey 版本是 1.0.48.05
-
您的代码似乎以 NumpadDot:: 开头。并返回。 AHK 将自动启动任何加载的脚本,直到它遇到的第一个 Return。一旦 AHK 找到返回,所有其他命令(在第一次返回之后)仅在触发时执行(例如热键)。
-
我会使用一个计时器来启动标记脚本(SetTimer [, Label, Period|On|Off|Delete, Priority]),而不是睡眠。所以不要循环,而是每 1000 毫秒启动一次带标签的脚本。
标签: autohotkey