【发布时间】:2013-03-20 08:22:11
【问题描述】:
假设我有一个自动热键脚本C:\path\to\my\script 正在运行。有没有办法定义一个重新启动它的热键?
【问题讨论】:
标签: autohotkey
假设我有一个自动热键脚本C:\path\to\my\script 正在运行。有没有办法定义一个重新启动它的热键?
【问题讨论】:
标签: autohotkey
为了防止重复实例,我通常不会重新启动脚本而是使用内置函数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
【讨论】:
创建一个运行脚本的热键,在本例中是相同的脚本,然后退出。
somehotkey::
Run, C:\path\to\my\script.ahk
ExitApp
return
【讨论】:
^#!r::Reload
我发现这是所有选项中最安全的选项,因为当您同时运行多个脚本时,它会注意重新加载正确的脚本,这对我来说是一个反复出现的问题。以下内容的组合还可确保一次只运行一个脚本实例。 ScriptFullPath 变量包含脚本的名称。
#SingleInstance Force ;put this at the top of the script
^r::run, %A_ScriptFullPath%
【讨论】: