Improved Menu x, NoStandard and Menu x, DeleteAll to work without attempting to destroy the underlying Win32 menu. This allows them to work when x is a menu bar or sub-menu of one.
Reworked the handling of vkXXscYYY:
Fixed GetKeyVK and GetKeyName treating vkXXscYYY as vk00scYYY.
Send is now more strict with {vk...} and invalid suffixes, consistent with similar changes made by [v1.1.27.00] (but sc is still supported).
Reduced code size.
Fixed mishandling of numeric keys outside the 32-bit range (but inside the 64-bit range) in some corner cases on 64-bit builds. This only affects classes which use such numbers as names (not recommended for multiple reasons) and array access via IDispatch with such numbers as keys/member names.
1.1.27.02 - January 1, 2018
Fixed loading of bmp files as icons at original size.
Fixed compound assignments such as Test.Prop[1] += 1 (broken by v1.1.27.01).
1.1.27.01 - December 31, 2017
Fixed program crashes caused by ++X or --X in scripts which lack #NoEnv (broken by v1.1.27.00).
Fixed #Warn ClassOverwrite giving an erroneous warning for ++MyClass.X.
Fixed remapping to allow custom combinations such as a & b::c.
Fixed Send/hotstrings/Input to adapt to the keyboard layout of the focused control instead of just the active window. In particular, this affects UWP apps such as Microsoft Edge.
Fixed hook hotkeys to suppress the Start menu activation which occurs when an isolated Ctrl/Shift up is received. Ctrl up may be generated by the system when switching from a keyboard layout with AltGr to one without (such as from UK to US), if Ctrl is not held down at the time. This fixes hotkeys such as $#z::WinActivate x when the change in focus causes those conditions.
Fixed Input not collecting characters when both Shift keys are down.
Fixed Input to use "sc" and "vk" for end keys in ErrorLevel rather than "Sc" and "Vk" (caused by v1.1.20).
Fixed GetKeyName/VK/SC("vkXXscYYY") where YYY begins with A-F (broken by v1.1.26).
1.1.27.00 - December 25, 2017
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 a-z to mean vk41-vk5A when absent from the keyboard layout, except with Raw mode or when sending single unmodified characters. This allows hotkeys and sent keyboard shortcuts to work more intuitively on certain non-English keyboard layouts.
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).
The hotkeys ~LWin:: and ~RWin:: no longer suppress the Start Menu. See #MenuMaskKey for details and a workaround.
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.
Bug fixes:
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, SB_SetIcon and LoadPicture with non-zero Icon option to allow bitmaps (but convert if needed).
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.
1.1.26.01 - July 16, 2017
Fixed RegDelete (with no args) failing when A_LoopRegSubKey is blank, such as when enumerating keys directly under the root key.
Fixed RAlt/LAlt:: sometimes failing to prevent menu activation after the user alt-tabs away from a window and reactivates it.
Fixed SC → VK translation for multimedia keys, PrintScreen, CtrlBreak, Pause, LWin and RWin, with the exception that multimedia keys, PrintScreen and CtrlBreak are still translated incorrectly on Windows 2000 and XP.
Fixed VK → SC translation for multimedia keys, CtrlBreak and Pause.
Fixed 'Wait commands such as RunWait to log extra lines for ListLines only when necessary to show that it is still waiting; that is, after resuming from an interruption which logged other lines.
1.1.26.00 - June 10, 2017
Changed the format ListVars uses to display variables containing objects. The object's class name is now shown.
Added "class" and "clsid" modes to ComObjType().
Revised class names shown by the debugger and significantly reduced code size in the process.
Revised FileSetAttrib, FileSetTime and FileDelete to reduce code size. There should not be any changes in behaviour.
Made other minor optimizations to code size.
Fixed GetKeySC() with the key names Esc, Escape, ScrollLock and PrintScreen.
Fixed hotstring word detection of words containing nonspacing marks, such as Arabic diacritics.
1.1.25.02 - May 13, 2017
Fixed GUI option strings being permanently truncated if an error is raised.
Fixed properties and class sub-variables to allow non-ASCII characters.
Fixed new operator to allow __New to throw or exit.
1.1.25.01 - March 5, 2017
Fixed Send to allow other scripts to act on modifier state changes which immediately precede a special character, such as the Shift release in Send Mört.
1.1.25.00 - March 4, 2017
Added Hotkey, If, % FunctionObject.
Fixed website address in Help menu.
1.1.24.05 - February 3, 2017
Fixed WinSet AlwaysOnTop/Trans/TransColor to work on windows with 0 exstyle.
1.1.24.04 - December 17, 2016
Fixed File.ReadNum() repeating old data if a prior File.Read() had stopped reading at the end of the buffer.
Improved buffer utilisation when File.Read() reaches the end of the buffered data.
Fixed GuiControl +Password to use the default bullet character on XP and later.
Fixed GuiControl +/-Password to redraw the control immediately.
1.1.24.03 - November 19, 2016
Fixed COM exception messages to not end in `r.
Fixed {U+x} to support supplementary characters (x > 0xFFFF).
Fixed class properties which lack get{} to return an empty value instead of the internal Property object when the class has a base which does not define a value for the property. Properties defined in baseless classes already behaved correctly.
Fixed the background color of controls on a Tab3 control when the system has visual styles disabled (i.e. Windows Classic).
Fixed handling of thread-exit in functions which are called directly by an event (such as OnExit functions). This bug had no known effect except in the v2-alpha branch.
Fixed the debugger to detect disconnection immediately (i.e. when a client terminates without calling stop/detach).
Fixed the debugger to treat property_get -m 0 as "unlimited", as per the DBGp spec.
Fixed the debugger to expect base64 for property_set -t integer/float, as per the DBGp spec.
1.1.24.02 - October 13, 2016
Added a Run with UI Access option to the installer.
Added documentation for Tab3 autosizing.
Fixed several Tab3 bugs:
Autosizing was not being triggered by the first call to Gui Show if the AutoSize or w and h options were used.
If a Tab3 control is empty when autosizing occurs, it now retains the default size instead of becoming unusable.
Autosizing now occurs immediately before creating another tab control, as though Gui Tab was called.
Autosizing failed if the tab control had negative screen coords.
Hiding a Tab3 control with GuiControl now also hides its dialog/background.
Fixed OnMessage to pass lParam as unsigned on 32-bit.
Fixed Gui Name : to allow spaces before the colon.
Fixed identifying a Gui or GuiControl by HWND with a negative value.
Fixed ComObject to suppress any errors raised by disconnection of events after the script has released the object.
Fixed Gui Show causing the window to shrink if it had a multi-line menu bar.
Fixed LV_InsertCol(n, width) not causing ListView scrollbar to update on some OS versions.
Optimized code size of FileRecycleEmpty.
1.1.24.01 - August 2, 2016
Changed Hotkey, If, Expression to raise an error if the unused third parameter is not blank.
Fixed &&, || and ternary to release any object used as the condition, as in if (a.subObject &&
.
Fixed Gui/GuiControl failing to "check" radio buttons within a Tab3 control.
Fixed FileCreateShortcut to allow relative paths for the LinkFile parameter on Windows 10.
Fixed themed Tab3 control to not override the custom text color of its controls.
Fixed debugger mishandling continuation commands in some specific cases.
1.1.24.00 - May 22, 2016
Breaking changes:
Passing SetTimer's Label parameter an empty variable or an expression which results in an empty value is now considered an error. The parameter must be either given a non-empty value or completely omitted.
Run-once timers are automatically deleted after running if they are associated with an object created by the script. This allows the object to be freed if the script is no longer referencing it, but it also means the timer's Period and Priority are not retained.
SetTimer, Hotkey, GuiControl and Menu now check the minimum parameter count of functions given by reference (not just by name, as in previous versions). If the function requires too many parameters, an error is raised or ErrorLevel is set (as appropriate).
Backward-compatible changes:
If SetTimer's Label parameter is omitted and A_ThisLabel is empty, the current timer (if any) is used.
New features:
Added Tab3 control type, solving a number of issues with Tab controls.
Bug-fixes:
Fixed GuiControl to update controls when adding/deleting tabs. Specifically:
Selecting a new tab with || now works correctly.
Deleting all tabs now hides the controls of the former tab.
Fixed +Disabled/+Hidden losing effect on controls in a tab.
Fixed disabled tab controls to ignore Ctrl+Tab.
Fixed Gui Tab without parameters to start a new radio group if applicable. Gui Tab with parameters already had this effect.
1.1.23.07 - May 20, 2016
Fixed Menu x, Insert, y, z, % object to use the object, not ignore it.
Fixed Menu x, Add, :item text, % object to use the object, not look for a submenu.
»» Нажмите, для закрытия спойлера | Press to close the spoiler ««