在测试AutoHotkey脚本时,我有时会忘记在进行更改后重新加载脚本。这导致我意外地测试了我的脚本的旧的,过时的版本。
我希望脚本能够自动重新加载,而不是手动重新加载脚本。
如何在修改.ahk
文件时让AutoHotkey重新加载当前脚本?
答案 0 :(得分:3)
在脚本开头附近,在auto-execute section
中#SingleInstance force
FileGetTime ScriptStartModTime, %A_ScriptFullPath%
SetTimer CheckScriptUpdate, 100, 0x7FFFFFFF ; 100 ms, highest priority
脚本中的任何位置(通常位于底部):
CheckScriptUpdate() {
global ScriptStartModTime
FileGetTime curModTime, %A_ScriptFullPath%
If (curModTime <> ScriptStartModTime) {
SetTimer CheckScriptUpdate, Off
Loop
{
reload
Sleep 300 ; ms
MsgBox 0x2, %A_ScriptName%, Reload failed. ; 0x2 = Abort/Retry/Ignore
IfMsgBox Abort
ExitApp
IfMsgBox Ignore
break
} ; loops reload on "Retry"
}
}
答案 1 :(得分:1)
这是我的操作方式:
#If WinActive("AHK.ahk - Notepad") or WinActive("*AHK.ahk - Notepad")
~^s::
Reload
Return
#If
检查当前窗口是否是我想在每次按Ctrl-S时自动重新加载的脚本。
~
表示保留了Ctrl-S的默认操作(保存文件),然后我们只需重新加载它即可。