2017-08-02 95 views
2

測試AutoHotkey腳本時,有時會忘記在更改後重新加載腳本。這導致我意外測試了我的腳本的舊版過時版本。修改後自動重新加載AutoHotkey腳本

而不是手動重新加載腳本,我想讓腳本自動重新加載,如果他們已被修改。

如何在每次修改.ahk文件時使AutoHotkey重新加載當前腳本?

回答

2

附近的某個地方腳本的開始,在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文件有時重新加載爲兩個重複的實例同時運行 –

相關問題