Changes:
Replaced AU3_Spy.exe with WindowSpy.ahk.
- AU3_Spy.exe is still launched if WindowSpy.ahk is not found.
- It now follows the focused control by default, and has a checkbox for both window and control to follow the mouse.
- It no longer takes over a global hotkey (Win+A). Instead, hold Ctrl or Shift to suspend updates (release them after focusing Window Spy).
- It is now possible to Alt-Tab to Window Spy on Windows 10 without the contents of the GUI changing.
Changed Send on ANSI versions to use SendInput() in place of Alt+nnnnn for special characters.
Changed the rules for masking Alt/Win after pressing a hook hotkey:
- Explicitly sent Alt/Win up may be masked. This fixes remappings such as AppsKey::RWin, but hotkeys which are intended to activate the Start Menu may require new workarounds.
- If Alt/Win is logically but not physically down, only hotkeys which require Alt/Win (such as #a::, not *a::) cause masking. This is to allow a remapping or wildcard hotkey to send the key-up without it being masked.
- Unsuppressed hotkeys such as ~#a:: no longer cause masking, because the unsuppressed keydown/keyup is sufficient to prevent a menu. However, mouse hotkeys like ~*MButton:: no longer suppress the Start Menu if combined with the Win key. It can be suppressed manually with Send {Blind}{vk07} or similar.
- The keyboard hook now tracks events in relation to Alt/Win, so that the mask key does not need to be sent if Alt/Win was already masked by some other event (physical or sent).
Added proper validation for vk or sc key names, so names such as "sc01notvalid" are no longer recognized as keys.
Scripts containing hotkeys of the form VKnnSCnnn:: will need to be corrected by removing SCnnn, which was previously ignored.
Help file: Replaced the standard HTML Help Viewer sidebar with the new HTML5 sidebar developed by Ragnar-F.
New features:
- Added Min/Max built-in functions. [PR #84 from Ragnar-F]
- Added A_Args as an alternative to the numbered variables.
- Added force-local mode for functions.
- Added #Warn ClassOverwrite.
- Added {Text} mode for Send and T option for hotstrings. These are like the Raw mode, but more reliable.
- Added {key DownR} and changed remapping to use it, to fix issues with AppsKey::RWin and similar.
- Fixed icon-loading to not default to ID 0 when the index is invalid.
- Fixed VK↔SC mapping of PrintScreen. SC→VK was already correct on Vista and later.
- Fixed Hotkey control returning scXXX instead of names in some cases.
- Fixed ListVars crashing if a ByRef parameter refers to a variable containing an object. [PR #86 from HotKeyIt]
- Fixed some (very unlikely) memory leaks.
- Fixed menu handles not being freed if only the standard items are used.
- Fixed bold font not being applied to default menu item if it has a submenu and a Win32 menu handle.
- Fixed Send to use the correct modifier state with Unicode chars.
- Fixed ControlSend {u n}, where u is Unicode, to send n times, not just 1.
- Fixed inconsistent behavior of AltGr between OS versions. Specifically, RAlt:: once again causes the system to "release" LCtrl on Windows 10, as it did prior to v1.1.26.01 (but unlike those old versions, it prevents the RAlt-up from reaching the active window). This change should not affect layouts without AltGr.
- Fixed Menu Tray, Icon and SB_SetIcon to allow bitmaps.
- Fixed menu items to not disappear when a cursor is set as a menu item's icon.
- Improved launching of Window Spy and the help file:
- If AutoHotkey is installed but the current executable is in a different directory (i.e. portable), the installed file is no longer preferred as it may be the wrong version. It may still be used as a fallback.
- On failure to launch the file, show the error message inside the dialog, not in its titlebar.
- Fixed one-line hotkeys with expressions beginning in sc or vk.
- Fixed >/< hotkey modifiers incorrectly allowing both keys to be pressed. For example, <^A could erroneously be triggered by LCtrl+RCtrl+A, thereby preventing the <>^A hotkey from working.
- Fixed auto-replace hotstrings inserting the literal text "{Raw}" in some cases (specifically, when the replacement contains {Raw} and the O, R and * options were not used).
- Fixed some hotkeys not using the hook when eclipsed by a wildcard hotkey, depending on the order of definition.
- Fixed key-down hotkeys to revert to "reg" if they were only "k-hook" because of a corresponding key-up hotkey which has since been disabled. (Prior to v1.1.07.03 this already happened, but the key-down hotkey was never set to "k-hook" in the first place if defined after the key-up.)
- Fixed hook hotkeys to ignore modifier changes made by Send !^+#{key} or when sending Unicode characters. This restores Send to how it was prior to v1.1.06 when at SendLevel 0, but keeps the v1.1.06+ behavior at SendLevel >= 1, allowing Send to trigger the right hotkeys.
- Improved the odds that Send from a "reg" hotkey such as ^m::Send x will restore the modifier state if Send is being called for the very first time. This makes it less likely to produce a different (and unexpected) result the first time it is held down, such as xmmm instead of xxxx.