修改后自动重新加载AutoHotkey脚本
问题描述:
测试AutoHotkey脚本时,有时会忘记在更改后重新加载脚本。这导致我意外测试了我的脚本的旧版过时版本。修改后自动重新加载AutoHotkey脚本
而不是手动重新加载脚本,我想让脚本自动重新加载,如果他们已被修改。
如何在每次修改.ahk
文件时使AutoHotkey重新加载当前脚本?
答
附近的某个地方脚本的开始,在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) {
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"
}
}
我需要手动定义'%A_ScriptFullPath%' ? –
@StevenVascellaro nope,检查内置变量在这里:https://autohotkey.com/docs/Variables.htm#prop – LogicDaemon
添加此脚本后,我的AHK文件有时重新加载为两个重复的实例同时运行 –