Add an emergency exit hotkey
The most reliable method of ending an active script is to pre-emptively include an emergency ExitApp
hotkey. A common practice is to place the following at the bottom of any script.
Esc::ExitApp ; Exit script with Escape key
You can also set hotkeys to pause, suspend, or reload your script.
^!p::Pause ; Pause script with Ctrl+Alt+P ^!s::Suspend ; Suspend script with Ctrl+Alt+S ^!r::Reload ; Reload script with Ctrl+Alt+R
Log off
On Windows 10/8/7/Vista, you can quickly log off with the keyboard shortcut Ctrl+Alt+Delete, followed by Alt+L.
This is because pressing Ctrl+Alt+Delete opens a special window which cannot be manipulated by programs like AutoHotkey.
End with taskbar icon
If you have control of the keyboard and mouse, you can end the script by right-clicking AutoHotkey’s green H icon in the taskbar and selecting “Exit”
End all active scripts with AHKPanic()
For a more generic solution, AHK user None wrote AHKPanic()
, a method which can pause, suspend, or kill all other running scripts. (Optionally ends the script that called it)
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 } }