【问题标题】:Hotkey to restart autohotkey script?热键重新启动自动热键脚本?
【发布时间】:2013-03-20 08:22:11
【问题描述】:

假设我有一个自动热键脚本C:\path\to\my\script 正在运行。有没有办法定义一个重新启动它的热键?

【问题讨论】:

标签: autohotkey


【解决方案1】:

为了防止重复实例,我通常不会重新启动脚本而是使用内置函数Reload。我用 Ctrl+Win+Alt+R 启动它并使用 Ctrl+ Win+Alt+E 编辑主 AHK 脚本。

^#!r::Reload

其实我的脚本是这样的:

^#!r::
Send, ^s ; To save a changed script
Sleep, 300 ; give it time to save the script
Reload
Return

^!#e::Edit

事实上,在我的脚本顶部,我一直有这个给我一个视觉和音频指示,表明脚本已重新启动:

#SingleInstance Force
#installKeybdHook
#Persistent
Menu, Tray, Icon , Shell32.dll, 25, 1
TrayTip, AutoHotKey, Started, 1
SoundBeep, 300, 150
Return

【讨论】:

    【解决方案2】:

    创建一个运行脚本的热键,在本例中是相同的脚本,然后退出。

    somehotkey::
        Run, C:\path\to\my\script.ahk
        ExitApp
    return
    

    【讨论】:

    • 为了防止多个实例同时运行(运行创建一个新实例),我使用^#!r::Reload
    • @RobertIlbrink。如果这会重新启动脚本,您应该将其发布为答案。如果避免实例重复,您的解决方案可能比 Armin 的解决方案更好。
    • @RobertIlbrink Reload 与我的建议完全相同。
    【解决方案3】:

    我发现这是所有选项中最安全的选项,因为当您同时运行多个脚本时,它会注意重新加载正确的脚本,这对我来说是一个反复出现的问题。以下内容的组合还可确保一次只运行一个脚本实例。 ScriptFullPath 变量包含脚本的名称。

    #SingleInstance Force ;put this at the top of the script
    ^r::run, %A_ScriptFullPath% 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 2012-11-16
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多