昨天在调试我的AutoHotkey脚本时,我意外地触发了无限循环MouseMove和MouseClick事件.每0.5秒我的鼠标会点击屏幕的随机部分.
在尝试使用任务管理器终止AHK失败后,我最终关闭了计算机以结束脚本.
如何停止活动的AutoHotkey脚本?
Ste*_*ica 20
结束活动脚本的最可靠方法是先发制人地包含紧急ExitApp热键.通常的做法是将以下内容放在任何脚本的底部.
Esc::ExitApp ; Exit script with Escape key
Run Code Online (Sandbox Code Playgroud)
^!p::Pause ; Pause script with Ctrl+Alt+P
^!s::Suspend ; Suspend script with Ctrl+Alt+S
^!r::Reload ; Reload script with Ctrl+Alt+R
Run Code Online (Sandbox Code Playgroud)
在Windows 10/8/7/Vista上,您可以使用键盘快捷键Ctrl+ Alt+ 快速注销Delete,然后按Alt+ L.
这是因为按Ctrl + Alt + Delete会打开一个特殊窗口,而AutoHotkey等程序无法操作该窗口.
如果你有键盘和鼠标的控制,您可以结束通过右键单击AutoHotkey的绿色和H图标在任务栏,然后选择"退出"的剧本
对于更通用的解决方案,AHK用户None编写AHKPanic()了一种方法,可以暂停,挂起或终止所有其他正在运行的脚本.(可选择结束调用它的脚本)
AHKPanic(Kill=0, Pause=0, Suspend=0, SelfToo=0) {
DetectHiddenWindows, On
WinGet, IDList ,List, ahk_class AutoHotkey
Loop %IDList%
{
ID:=IDList%A_Index%
WinGetTitle, ATitle, ahk_id %ID%
IfNotInString, ATitle, %A_ScriptFullPath%
{
If Suspend
PostMessage, 0x111, 65305,,, ahk_id %ID% ; Suspend.
If Pause
PostMessage, 0x111, 65306,,, ahk_id %ID% ; Pause.
If Kill
WinClose, ahk_id %ID% ;kill
}
}
If SelfToo
{
If Suspend
Suspend, Toggle ; Suspend.
If Pause
Pause, Toggle, 1 ; Pause.
If Kill
ExitApp
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想在 Windows 命令提示符下停止它,
停止所有自动热键脚本:
taskkill /im "autohotkey.exe"
Run Code Online (Sandbox Code Playgroud)
停止特定脚本:
wmic process where "commandline like '%%MyScript.ahk'" delete
Run Code Online (Sandbox Code Playgroud)