修改后自动重新加载AutoHotkey脚本

修改后自动重新加载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" 
    } 
} 
+0

我需要手动定义'%A_ScriptFullPath%' ? –

+0

@StevenVascellaro nope,检查内置变量在这里:https://autohotkey.com/docs/Variables.htm#prop – LogicDaemon

+0

添加此脚本后,我的AHK文件有时重新加载为两个重复的实例同时运行 –