← Package directory
Available on winget

Install AutoHotkey

Macro-creation and automation-oriented scripting utility for Windows.

Install with winget
winget install --id AutoHotkey.AutoHotkey
Upgrade
winget upgrade --id AutoHotkey.AutoHotkey
Uninstall
winget uninstall --id AutoHotkey.AutoHotkey

About AutoHotkey

AutoHotkey is a free, open source macro-creation and automation software utility that allows users to automate repetitive tasks. It is driven by a custom scripting language that has special provision for defining keyboard shortcuts, otherwise known as hotkeys.

What's new in 2.0.26

Fixed ControlGetItems/ControlGetChoice not throwing for Tab controls. Fixed error reporting for ComObjArray().__Enum(), if it ever fails. Fixed TraySetIcon("HBITMAP:" handle) without *.

Read release notes

Version history

Version Updated Notes
2.0.26 Unknown Fixed ControlGetItems/ControlGetChoice not throwing for Tab controls. Fixed error reporting for ComObjArray().__Enum(), if it ever fails. Fixed TraySetIcon("HBITMAP:" handle) without *.
2.0.24 Unknown Fixed navigation with Tab key in a Gui with a nested Gui (+Parent). UX/Dash Added an optional check for AutoHotkey updates, disabled by default. [based on AutoHotkey/AutoHotkeyUX#11 by kczx3] Fixed errors being raised wh...
2.0.23 Unknown Changed how key-up events are correlated to key-down events for the purpose of determining whether to suppress key-up. A key-down with SendLevel between 1 and 7 now only correlates with a key-up of the same level. When #...
2.0.22 Unknown Removed the undocumented effect that a hotkey with the </> prefix had on the corresponding modifier key; e.g. <^a:: causing LCtrl:: to fire on release, inconsistent with the documentation. Always firing on press provides...
2.0.21 Unknown Fixed StrGet crashing when given an address and not a length. (Broken by v2.0.20)
2.0.20 Unknown Fixed potential undefined behaviour in message callbacks during script termination. Fixed Run not closing the process handle. Fixed GuiFromHwnd crashing if passed another script's GUI window HWND. Fixed leading space in...
2.0.19 Unknown Fixed memory out-of-bounds access during RegEx compilation. Fixed externally-released modifiers to not be "restored" post-Send. Fixed modal dialog boxes suppressing InputHook events. Fixed key-up erroneously being suppre...
2.0.18 Unknown Fixed A_Clipboard silently exiting when GetClipboardData returns NULL. Fixed a.b[c] := d to invoke the getter for a.b if there is no setter.
2.0.17 Unknown Implemented an optimization to the WinText parameter by Descolada. [PR #335] Changed UnsetError message to suggest a global declaration instead of appending "(same name as a global)" after the variable name. Changed VarU...
2.0.16 Unknown Fixed load-time errors sent to stdout showing incorrect file/line number in some cases. Fixed ExitApp on load-time error/warning dialogs to use exit code 2. Fixed locating WindowSpy.ahk in Current User (non-admin) instal...
2.0.15 Unknown Fixed DBGp property_get failing to retrieve properties due to incorrect paging (since v2.0.14). Fixed DBGp property evaluation causing Try without Catch to fail (since v2.0.14). Fixed <base> debugger pseudo-property leak...
2.0.12 Unknown Fixed Gui GetPos/GetClientPos when Gui has an owner window or +DPIScale. Fixed Until preventing subfolder recursion in file loops. Fixed DllCall to throw when arg type is UStr. Fixed a memory leak occurring for each rege...
2.0.11 Unknown Added a workaround for the first shown menu not accepting keyboard input on Windows 10. Fixed the Add method (Gui) to support the ShortDate option for DateTime controls. Fixed a reference counting error with multi-level...
2.0.10 Unknown Fixed crashing when a named function hotkey is used after #HotIf. Fixed numeric literals ending with a dot to not cause line continuation. Fixed pre-increment/decrement to work with chained array indexing. Fixed OnNotify...
2.0.9 Unknown Fixed stacking of hotstrings with the X option. Fixed debugger not listing local vars if the function is at the bottom of the stack. Fixed Gui threads to show on the debugger's call stack. Fixed some combinations of &/By...
2.0.8 Unknown Fixed ByRef parameters erroneously assigning the default value to the caller's VarRef if unset. Fixed some issues affecting suppressed Alt/Ctrl/Shift/Win hotkeys, such as: - *LCtrl:: blocked LCtrl from the active window,...
2.0.7 Unknown Fixed MouseClickDrag to allow X1 and Y1 to be omitted. Fixed mouse AltTab hotkeys not suppressing execution of a prefix hotkey, such as 1:: for 1 & WheelDown::AltTab. (Broken by v2.0.4) Fixed hook hotkeys not recognizing...
2.0.6 Unknown Fixed some ambiguity with COM calls, such as x.y acting as x.y(). Fixed breakpoint on control flow statement being "hit" when a fat arrow function on the line below it returns. Fixed Default : to not merge with the line...
2.0.5 Unknown Fixed a memory leak caused by incorrect reference counting when an object is enumerated via COM. [PR# 325] Fixed internal calls to __Enum to not call __Call. Fixed error messages referring to parameter #65535. Fixed inco...
2.0.4 Unknown Changed the Reload button on error/warning dialogs to explicitly close the dialog, even if the current script instance isn't terminated. Removed an optimization for return var which caused the variable to appear blank wh...