AutoHotkey

System UtilitiesGPL-2.0

A scripting language for desktop automation on Windows.

Latest v2.0.30 · by AutoHotkey FoundationWritten in C++WebsiteAutoHotkey/AutoHotkeyRSS

Release activity

Release activity — 11 releases across 10 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JulAugSepOct
SundayNo releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026No releases on Sep 13, 2026No releases on Sep 20, 2026No releases on Sep 27, 2026No releases on Oct 4, 2026No releases on Oct 11, 2026
MondayNo releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026No releases on Sep 14, 2026No releases on Sep 21, 2026No releases on Sep 28, 2026No releases on Oct 5, 2026No releases on Oct 12, 2026
TuesdayNo releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026No releases on Sep 15, 2026No releases on Sep 22, 2026No releases on Sep 29, 2026No releases on Oct 6, 2026
WednesdayNo releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026No releases on Sep 9, 2026No releases on Sep 16, 2026No releases on Sep 23, 2026No releases on Sep 30, 2026No releases on Oct 7, 2026
ThursdayNo releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026No releases on Sep 10, 2026No releases on Sep 17, 2026No releases on Sep 24, 2026No releases on Oct 1, 2026No releases on Oct 8, 2026
FridayNo releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 20261 release on Aug 28, 2026No releases on Sep 4, 2026No releases on Sep 11, 2026No releases on Sep 18, 2026No releases on Sep 25, 2026No releases on Oct 2, 20261 release on Oct 9, 2026
SaturdayNo releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 20261 release on Sep 12, 2026No releases on Sep 19, 2026No releases on Sep 26, 20261 release on Oct 3, 2026No releases on Oct 10, 2026

11 releases in the last year, busiest day 2

Changelog

v2.0.30

Latest
Fixed 2
  • Gui.Move no longer moves the window incorrectly when it has an owner
  • Hotkeys such as a & b::AltTabMenu no longer crash the program when activated

From AutoHotkey

View originalPermalink
How v2.0.30 went

v2.0.29

Fixed 1
  • OnMessage crashing if more than 65536 monitors are registered
View originalRead the notes
How v2.0.29 went

v2.0.27

Fixed 6
  • Breakpoint on line containing => where direct parent is a block
  • Send "{Click X Y Count}" to move only once, not Count times
  • IServiceProvider interface pointer leak in ComObjQuery
  • Setter definition to be permitted after a separate getter
  • Item parameter of ContextMenu event raised by a ListView's Header
  • Class declarations to not permit a class to subclass itself
View originalRead the notes
How v2.0.27 went

v2.0.26

Fixed 3
  • Fixed ControlGetItems/ControlGetChoice not throwing for Tab controls
  • Fixed error reporting for ComObjArray().__Enum() if it ever fails
  • Fixed TraySetIcon("HBITMAP:" handle) without *
View originalRead the notes
How v2.0.26 went

v2.0.25

Fixed 2
  • ByRef alias to global var becoming unset in recursive calls
  • Error raised by Hotkey() not transferring control correctly
View originalRead the notes
How v2.0.25 went

v2.0.24

Added 1
  • Optional check for AutoHotkey updates, disabled by default
Changed 1
  • "New script" to add the file to recent files
Fixed 4
  • Navigation with Tab key in a Gui with a nested Gui (+Parent)
  • Errors being raised when arrow keys are used in the Help Files menu
  • Install-version.ahk to delete the temporary ".staging" directory after installing an upgrade
  • Help Files menu to be displayed at the button, not at the mouse cursor
View originalRead the notes
How v2.0.24 went

v2.0.23

Changed 1
  • Key-down events with SendLevel between 1 and 7 now only correlate with key-up events of the same level, fixing suppression and modifier interference issues
Fixed 4
  • WinExist("A",,"B") to not exclude windows which have no controls
  • Custom combo hotkeys with neutral modifiers such as Alt & Esc
  • Key-up hotkeys to fire consistently when the key is used as both a prefix and a suffix
  • Timers interrupting MsgBox after the timeout starts but before the window is shown
View originalRead the notes
How v2.0.23 went

v2.0.22

Changed 1
  • Change error dialogs to use msftedit.dll instead of riched20.dll to fix hanging when inspected by UI Automation and broken characters with certain character sets like emoji, Chinese, or Arabic
Fixed 13
  • Fix errors within __Delete being suppressed if a Try/Catch is active
  • Fix CallbackCreate to validate ParamCount
  • Fix detection of DllCall(... "str",&var:={} ...) as an error
  • Fix CapsLock:: to suppress even if CapsLock is used as a prefix key
  • Fix neutral Ctrl/Alt/Shift hotkeys to not suppress the key, which was broken by v2.0.20
  • Fix fire-on-release behaviour of neutral Ctrl/Alt/Shift hotkeys when a key-up variant is turned on but disabled by #HotIf
Removed 1
  • Remove the undocumented effect that a hotkey with the <> prefix had on the corresponding modifier key, so that prefixed modifier hotkeys like <^a:: always fire on press instead of on release
View originalRead the notes
How v2.0.22 went

v2.0.21

Fixed 1
  • StrGet crashing when given an address and not a length
View originalRead the notes
How v2.0.21 went

v2.0.20

Fixed 20
  • Potential undefined behaviour in message callbacks during script termination
  • Run not closing the process handle
  • GuiFromHwnd crashing if passed another script's GUI window HWND
  • Leading space in For( a in b ) incorrectly raising an error
  • Enumerator calls (For) treating implicitly returned "" as true
  • A_maxHotkeysPerInterval and A_Hotkeyinterval returning incorrect values if spelled in lower case
View originalRead the notes
How v2.0.20 went

v2.0.19

Fixed 10
  • Memory out-of-bounds access during RegEx compilation
  • Externally-released modifiers to not be restored post-Send
  • Modal dialog boxes suppressing InputHook events
  • Key-up erroneously being suppressed after key-repeat presses it down in some cases
  • Critical Error when loading large icons with no alpha channel
  • MouseGetPos to make Control blank and not throw if ClassNN cannot be determined
View originalRead the notes
How v2.0.19 went

v2.0.18

Fixed 2
  • A_Clipboard silently exiting when GetClipboardData returns NULL
  • a.b[c] := d to invoke the getter for a.b if there is no setter
View originalRead the notes
How v2.0.18 went

v2.0.17

Changed 4
  • Implemented an optimization to the WinText parameter
  • Changed UnsetError message to suggest a global declaration instead of appending "(same name as a global)" after the variable name
  • Changed VarUnset warning message for consistency with UnsetError
  • Stepping out of a function which was called as a new thread now breaks at the line which was interrupted, instead of waiting until the next line is reached
Fixed 5
  • Fixed the increment/decrement operators to throw UnsetError if the var is unset, not TypeError
  • Fixed OwnProps to assign the property name safely in cases where a property deletes itself
  • Fixed breakpoints to work in arrow functions under a control flow statement without a block
  • Fixed debugger to break at the line of the call when stepping out of a function
  • Fixed debugger to not delete temporary breakpoints which are ignored while evaluating DBGp property_get or context_get
View originalRead the notes
How v2.0.17 went
View all

Discussion

If you publish AutoHotkey, you can claim this product by proving you administer its repository.