AutoHotkey L Versions Save

AutoHotkey - macro-creation and automation-oriented scripting utility for Windows.

v2.0.4

9 months ago

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 when accessed within a finally block.

Fixed Default (Switch) to allow space before the colon.

Fixed Array.Prototype.RemoveAt to return the removed value when Length is "explicitly omitted" with unset or var?.

Fixed crashing when a ComObject is passed to a for-loop with only the second variable specified.

Changes merged from v1.1.37.00 and v1.1.37.01:

Changed COM method and property calls to pass large integers as VT_I8, not VT_R8 (floating-point), so the original type and precision is retained. Integers in the 32-bit range are still passed as VT_I4.

Added support for multi-variable enumerators (for-loops) with IDispatch-wrapped AutoHotkey objects. Both the script invoking the object and the object itself must be running a supported AutoHotkey version.

Fixed omitted parameters to receive their default values rather than the "optional argument marker" when an AutoHotkey method is called via IDispatch (COM). The reverse translation was already done when calling COM methods in previous versions.

Fixed VerCompare(a, ">" b) and reduced code size marginally.

Fixed AltTab-related load-time errors to be consistent with other errors.

Fixed errors thrown by a ComObject wrapper not being propagated correctly if it is called via an object/COM.

Fixed the Hotkey GUI control to allow setting the symbols ^, ! and + as hotkeys.

Fixed the Hotkey control to include modifiers when its value is set to a symbol.

Fixed potential misbehaviour of InputHook.KeyOpt() with single chars.

  • Option removal potentially not affecting the corresponding SC.
  • Options potentially also being applied to sc000.

Fixed a bug with custom combos where a set of hotkeys like a &amp b::, a:: and a up:: would fail to suppress the release of a if a:: alone is disabled with #HotIf.

Fixed a bug where a key-down event is correctly suppressed by a hotkey, but sending an additional key-down with SendLevel > 0 would prevent the subsequent key-up from being suppressed, even if the sent event is ignored due to #InputLevel.

Fixed a & b up:: not suppressing b if a & b:: is present but disabled by #HotIf.

Fixed an issue with hotkeys not firing due to a race condition. If a modifier hotkey such as ~*RWin:: called Send or GetKeyState too soon, the OS could report that RWin isn't down, so the hook's modifier state would be "corrected" and hotkeys would wrongly fire or fail to fire. This was likely to occur only if another keyboard hook was installed more recently than the script's own hook, since in that case the OS would not update key state until the other hook's thread has resumed and returned.

Fixed hotstrings to use the Last Found Window set by #HotIf.

Fixed an issue where any attempt to reinstall the keyboard or mouse hook would fail if the OS had automatically uninstalled the hook. It is still necessary to meet certain conditions before any such attempt can be made.

Optimized allocation of cached COM property names for built-in IDispatch.

Refactored code to support a build configuration for AutoHotkey as a DLL.

SHA256 hash 38B5790E1FD1BEA17231A3A55E701217EBDE42428046E029F609B1D1734C7140 AutoHotkey_2.0.4_setup.exe

v1.1.37.01

9 months ago

Fixed an issue with hotkeys not firing due to a race condition. If a modifier hotkey such as ~*RWin:: called Send or GetKeyState too soon, the OS could report that RWin isn't down, so the hook's modifier state would be "corrected" and hotkeys would wrongly fire or fail to fire. This was likely to occur only if another keyboard hook was installed more recently than the script's own hook, since in that case the OS would not update key state until the other hook's thread has resumed and returned.

Fixed hotstrings to use the Last Found Window set by #If.

Fixed MouseGetPos, ControlClick, ContextMenu Gui events and DropFile Gui events erroneously detecting a control at a specific point which actually lies one pixel below or to the right of the control.

Fixed an issue where any attempt to reinstall the keyboard or mouse hook would fail if the OS had automatically uninstalled the hook. It is still necessary to meet certain conditions before any such attempt can be made.

SHA256 hash DBF3490648EFE876BD9A98D53E4D9110BF5E02A3914C0DD4B2A48DB4A09799B5 AutoHotkey_1.1.37.01_setup.exe

v1.1.37.00

9 months ago

Changed COM method and property calls to pass large integers as VT_I8, not VT_R8 (floating-point), so the original type and precision is retained. Integers in the 32-bit range are still passed as VT_I4.

Added support for two-variable enumerators (for-loops) with IDispatch-wrapped AutoHotkey objects. Both the script invoking the object and the object itself must be running a supported AutoHotkey version.

Added support for ByRef VARIANT in incoming COM calls. Instead of receiving a ComObject wrapper with the VT_BYREF|VT_VARIANT variant type, the script receives a temporary variable compatible with a normal ByRef parameter.

Added support for omitting parameters in incoming COM calls. IDispatch allows omitting parameters by specifying a VARIANT of type VT_ERROR with value DISP_E_PARAMNOTFOUND. These values are now translated automatically instead of being wrapped in an object. The reverse translation was already done when calling COM methods in previous versions.

Fixed VerCompare(a, ">" b) and reduced code size marginally.

Fixed AltTab-related load-time errors to be consistent with other errors.

Fixed errors thrown by a ComObject wrapper not being propagated correctly if it is called via an object/COM.

Fixed the Hotkey GUI control to allow setting the symbols ^, ! and + as hotkeys.

Fixed the Hotkey control to include modifiers when its value is set to a symbol.

Fixed Menu Add overwriting items which were appended by Menu Insert.

Fixed potential misbehaviour of InputHook.KeyOpt() with single chars.

  • Option removal potentially not affecting the corresponding SC.
  • Options potentially also being applied to sc000.

Fixed a bug with custom combos where a set of hotkeys like a &amp b::, a:: and a up:: would fail to suppress the release of a if a:: alone is disabled with #If.

Fixed a bug where a key-down event is correctly suppressed by a hotkey, but sending an additional key-down with SendLevel > 0 would prevent the subsequent key-up from being suppressed, even if the sent event is ignored due to #InputLevel.

Fixed a & b up:: not suppressing b if a & b:: is present but disabled by #If.

Optimized allocation of cached COM property names for built-in IDispatch.

Refactored code to support a build configuration for AutoHotkey as a DLL.

SHA256 hash E16E14A5902618298C24B6B6A2503D83D435BD647DCBDC2A20FA5F7285C57168 AutoHotkey_1.1.37.00_setup.exe

v2.0.3

10 months ago

Fixed Hotkey("a", "b") to use the original function of "b", not "a". [PR #318]

Fixed FileSetAttribute crash when used in a File Reading Loop. [PR #323]

Fixed duplicate Gui control name errors to correctly abort the thread.

Fixed DateTime/MonthCal Range option not applying minimum value.

Fixed s[x] => x and other single-line properties starting with "s".

Fixed a bug with deleting a breakpoint on a static line containing =>.

Fixed Button control not becoming default when clicked.

Fixed PixelSearch to unset X when pixel is not found.

Fixed hotstring with escape sequence causing next line to be skipped.

Fixed WinTitle ignoring character 1 when "ahk_" is at character 2.

Fixed remapping to utilize right-hand modifier already being down. For example, +x::+y will no longer release RShift to press LShift.

Changed error message for a == b && c() and similar cases to avoid alluding to legacy =.

Improved error message for some cases of unintended line continuation.

Fixed reserved words to be permitted as method names, as documented.

Fixed duplicate OnMessage calls for some keyboard messages.

Fixed inter-referenced closures being deleted prematurely.

Fixed SetFont to permit leading spaces in the Options parameter.

Fixed sending of {ASC nnnn}.

Fixed a.base := a to throw an error.

Fixed x.y := unset causing crashes or undefined behaviour.

Fixed GuiControl.Move() to be relative to the GUI's client area even when the GUI is not its parent.

Fixed Menu Add overwriting items which were appended by Menu Insert.

SHA256 hash A32362B2769CB3CD8CAA10722C50208B7170FE82D3663E85425DF416422B4D22 AutoHotkey_2.0.3_setup.exe

v2.0.2

1 year ago

Refer to the announcement topic for a list of bug fixes.

SHA256 hashes 9C8B1AECAF1BDDED80BEC98EC5AB5B9B9754CBCE9439DD9EACC7D1774D1438F8 AutoHotkey_2.0.2_setup.exe 8F28C38A0B2AF6AC96C4A7E1A2C0F296B2410F845D9ACA8487843A1EDAC4271D AutoHotkey_2.0.2.zip

v2.0.0

1 year ago

Refer to the announcement topic for a list of changes since v2.0-rc.3.

Refer to Changes from v1.1 to v2.0 if you are new to v2.

SHA256 hashes 04EB8295AF197DA058CEC5A2B78B8B7F6BCEE7299CBADEBF68DC6837968C5BB0 AutoHotkey_2.0.0.zip 8DC4871AC544D2CD0FF7CCD84B8862EAF9BA0AF18BD5B71E29146B17E4B13783 AutoHotkey_2.0.0_setup.exe

v1.1.36.02

1 year ago

Improved ComObjConnect to allow detecting disconnect via __Delete.

Fixed a performance issue with command args exceeding 4*1024*1024 chars.

Fixed FileCreateDir with network shares/UNC paths.

Fixed undefined behavior for File.Length/Read() with console buffers.

v1.1.36.01

1 year ago

Fixed undefined behaviour for Switch numeric comparisons.

v1.1.36.00

1 year ago

Added VerCompare().

Added support for breakpoint exceptions via DBGp.

Extended #Requires to support operators for range checks (< <= > >= =) and additional keywords: Unicode, ANSI, 32-bit, 64-bit.

Added CompanyName to the version information in AutoHotkey.exe, which may work around a Windows 10 bug where the program would not appear in Open With.

Changed Switch/Case to perform non-numeric comparison when the switch or case expression is a lone literal string, such as "00", and documented comparison behaviour which was previously undocumented.

Fixed some inconsistencies with integer property names via IDispatch.

  • Negative values always being considered non-numeric.
  • Positive values losing formatting, such as leading zeroes.

Fixed potential crashes when inspecting a ComObject via DBGp after using ComObjConnect.

Fixed FileAppend to treat a blank Encoding as omitted.

Fixed version comparisons to ignore numeric build info; e.g. 1.1.35.00+1+abcdef (1 is the number of commits since 1.1.35.00).

Fixed FileCreateDir X\Y\ (with trailing slash) failing to create X [broken by v1.1.35.00].

v1.1.35.00

1 year ago

Changed GroupActivate and GroupClose to behave more intuitively:

  • Evaluate windows against the window group as a whole, not individual window specifications.
  • When GroupClose indirectly causes another matching window to activate, leave it active even if it isn't matched by the same window specification.

Contributions by jeeswg (pull requests #186, #235, #240, #249, #273, #274):

  • Backported operators !==, >>> and >>>= from v2.
  • Backported A_InitialWorkingDir from v2.
  • Backported File.Handle from v2.
  • Backported A_Clipboard from v2.
  • Backported IsSet() from v2.
Bug-fixes:

Fixed a spelling error in the #Warn Unreachable message.

Fixed FileCreateDir handling of paths containing ".." or "/".

Fixed some issues with FileSelectFile's RootDir\Filename parameter:

  • Filename not being used when RootDir is a badly formatted CLSID.
  • Undefined behaviour for long paths when GetShortPathName fails (such as when long path awareness is disabled or there's a default filename which isn't an existing file).

Fixed FileSetTime to set A_LastError if it finds no files.

Fixed EnvAdd/+= losing precision when adding 115,292,150,461+ seconds.

Fixed the keyboard hook reinserting a suppressed dead key when Enter is pressed, such as in the sequence `o{Enter} when the following is true:

  • A separate script has suppressed "ò" due to :?*:ò::.
  • The current process also has active hotstrings.
  • The other process installed its hook last.

Fixed ControlGet List "Selected" option repeating output on x64 when the target is 32-bit.

Fixed stack corruption for ControlGet List "Count" options.