Autohotkey 热键重新启动自动热键脚本?

Autohotkey 热键重新启动自动热键脚本?,autohotkey,Autohotkey,假设我有一个自动热键脚本C:\path\to\my\script正在运行。有没有办法定义一个热键来重新启动它?制作一个运行脚本的热键,在本例中,该热键是同一个脚本,然后退出 somehotkey:: Run, C:\path\to\my\script.ahk ExitApp return 为了防止重复实例,我通常不重新启动脚本,而是使用内置函数。我使用Ctrl+Win+Alt+R启动此脚本,并使用Ctrl+Win+Alt+E编辑主AHK脚本 ^#!r::Reload 实际上,

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

制作一个运行脚本的热键,在本例中,该热键是同一个脚本,然后退出

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

为了防止重复实例,我通常不重新启动脚本,而是使用内置函数。我使用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

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

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

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