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

时间:2017-08-02 18:23:44

标签: autohotkey

在测试AutoHotkey脚本时,我有时会忘记在进行更改后重新加载脚本。这导致我意外地测试了我的脚本的旧的,过时的版本。

我希望脚本能够自动重新加载,而不是手动重新加载脚本。

如何在修改.ahk文件时让AutoHotkey重新加载当前脚本?

2 个答案:

答案 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的默认操作(保存文件),然后我们只需重新加载它即可。