测试AutoHotkey脚本时,有时会忘记在进行更改后重新加载脚本。这导致我不小心测试了脚本的旧的,过时的版本。
我希望手动修改脚本,而不是手动重新加载脚本。
每当.ahk修改文件时,如何使AutoHotkey重新加载当前脚本?
在脚本开始附近的自动执行部分
#SingleInstance force
FileGetTime ScriptStartModTime, %A_ScriptFullPath%
SetTimer CheckScriptUpdate, 100, 0x7FFFFFFF ; 100 ms, highest priority
Run Code Online (Sandbox Code Playgroud)
脚本中的任何位置(通常在底部的某个位置):
CheckScriptUpdate() {
global ScriptStartModTime
FileGetTime curModTime, %A_ScriptFullPath%
If (curModTime == ScriptStartModTime)
return
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"
}
Run Code Online (Sandbox Code Playgroud)