Software Update: AutoHotkey

Spread the love

AutoHotkey is developed in Visual C++ and allows you to put frequently used keystrokes, actions and/or button combos with the keyboard and mouse behind a hotkey, so that the relevant action is performed in one go. In addition, it is possible to convert previously scripted AutoIt2 key combinations to the AutoHotkey scripting language. The developer has released version and the list of changes made this year are listed below:

Changes in version

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 behavior 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.

Changes in version

  • Fixed callback functions not being included in the debugger’s call stack.
  • Fixed MsgBox timeout reported as “OK” if shown within 100ms of startup.
  • Fixed Edit control to ignore +WantTab while +ReadOnly is in effect.
  • Fixed property_get returning a local var when -d should prevent it.
  • Fixed RegRead to support REG_MULTI_SZ values ​​containing empty items.
  • Fixedx[,y]:=z invoking undefined behaviour.

Changes in version

  • Fixed double backspacing of supplementary Unicode characters in hotstrings.
  • Fixed a:: not firing if a up:: and a & b:: are present.
  • Fixed MinSize/MaxSize being applied incorrectly before the first call to Gui Show.
  • Fixed the hook thread getting stuck in an infinite loop if an InputHook has been restarted too soon after being stopped.
  • Fixed crashes or undefined behavior when a blank parameter is passed to FileCopy, FileMove, FileCopyDir, FileMoveDir or FileRemoveDir.
  • Fixed dead keys erroneously being reapplied by the keyboard hook after the final character of a hotstring is suppressed (eg for :?*:ò::ó).

Changes in version

Fixed bug introduced by v1.1.34.00:

  • Fixed command line args for embedded script #1.
  • Fixed Alt::, Ctrl:: and Shift:: behaving like normal keys, instead of firing on release as documented.
  • Fixed ~a & b:: (when disabled with #If) causing a:: to fire on key-up even after activating some other combo.

Changes in version

  • Fixed: a up:: firing on press rather than release if it is the first hotkey and ~a & b:: is present.
  • Fixed: a:: not suppressing the key if ~a & b:: is also present, unless a:: is the first hotkey.
  • Fixed: CapsLock:: not working when CapsLock & x:: is also present, and likewise for NumLock and ScrollLock.

Changes in version

  • Added the capability to use AutoHotkey.exe as the base for compiled scripts, allowing compiled scripts to execute external files when passed the /script command-line switch.
  • Added the capability to implicitly include code at the top of every script, either by embedding a resource within AutoHotkey.exe or by using the /include command-line switch.
  • Enables the use of Menu NoMainWindow/MainWindow in uncompiled scripts.
  • Changed ~x & y:: to not affect suppression of x when disabled by #If.
  • Enhanced FileCopyDir to permit the source directory to be a zip file, if supported by the OS, in which case its contents are extracted.
  • Fixed execution of multiple run-once timers in the same tick [broken by v1.1.33.11].
  • Fixed ToolTip positioning/sizing bugs.
    • Attempting to position a tooltip overlapping the taskbar caused it to appear at the top of the screen instead, on Windows 10 and 11.
    • Tooltips were limited by the primary screen’s width even when they should appear on a secondary screen, and this could prevent them from appearing on the appropriate screen (when they’re too wide).
    • The maximum width was effective A_ScreenDPI/96 times larger than it should be due to OS behaviour; this is now accounted for.
  • Optimized ToolTip for cases where the text isn’t changing, to reduce flicker and speed it up.
  • Fixed key-up hotkeys failing to execute if they are turned on after (but not before) the key is pressed down, and that key is also used as a custom prefix key with the tilde prefix (eg activating ~a & b:: interferes with an up::).
  • Fixed custom combo hotkeys where the prefix key causes a hook reset, such as ~RButton & WheelUp:: when RButton:: enables or disables the script’s only keyboard hook hotkey.

Changes in version

  • Fixed Format(n) returning blank when n is a pure numeric expression.
  • Fixed the debugger’s inability to query obj...
  • Changed debugger step/breakpoints to slip over Try/Catch/Finally/Case.
  • Fixed Switch { incorrectly raising a load-time error.
  • Fixed debugger stack_get reporting incorrect line after OnError.
  • Fixed debugger stack_get reporting incorrect line for auto-execute thread.
  • Fixed auto-env retrieval and A_ComVar to safely allow for variables larger than the official limit [PR #259 from mikeblas].
  • Fixed A_EventInfo for mouse wheel hotkeys [broken by v1.1.33.05].
  • Fixed ControlClick to convert coordinates correctly for wheel messages.
  • Fixed the IDispatch implementation for AutoHotkey objects to preserve case for property names.
  • Fixed #Warn StdOut to default to codepage 0 when /ErrorStdOut is not used.
  • Fixed crashes when a timer’s __delete() meta-function deletes the next timer.

Version number
Release status Final
Operating systems Windows 7, Windows 8, Windows 10, Windows 11
Website AutoHotkey
License type GPL
OSSoftwareUnicodeWindowsWindows 10