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.
Installer
reset-assoc.ahk, which runs automatically after installation, now detects if .ahk file type registration is being overridden by
HKCU\Software\Classes\.ahk, such as by setting the default program using "Open with" or a file's Properties dialog prior to installation on Windows 7. In such a case, a prompt is shown and the issue can be resolved by accepting the prompt.
Command-line installations which do not specify the target directory will now prompt for elevation if AutoHotkey is already installed for all users and not the current user, instead of attempting (and failing) to update without elevation. If elevation fails or is denied by the user, AutoHotkey is installed for the current user only.
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 & 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.