Changes & New Features

1.0.45.04 - November 15, 2006

Fixed crash on Windows 9x when a script doesn't actually run (e.g. due to syntax error) (broken by v1.0.45). [thanks rogerg]

Changed "Control Style|ExStyle" to report ErrorLevel 0 vs. 1 when the requested style change wasn't necessary because it was already in effect.

Improved #Include to support %A_AppData% and %A_AppDataCommon%. [thanks Tekl]

1.0.45.03 - November 12, 2006

Fixed file-pattern loops not to crash when recursing into paths longer than 259 characters. In addition, such paths and files are now ignored (skipped over) by file-pattern loops, FileSetAttrib, and FileSetTime. [thanks PhilR]

Fixed functions that call themselves and assign the result to one of their own locals (broken by v1.0.45). [thanks bjennings]

Fixed crash of scripts containing regular expressions that have compile errors. [thanks PhiLho]

Fixed GuiControl not to convert checkboxes into 3-state unless requested. [thanks JBensimon]

Changed UrlDownloadToFile to announce a user-agent of "AutoHotkey" to the server rather than a blank string. [thanks jaco0646]

Improved continuation sections to support semicolon comments inside the section via the option-word Comments.

1.0.45.02 - November 8, 2006

Fixed StringUpper and StringLower to work when OutputVar is the clipboard (broken by v1.0.45). [thanks songsoverruins]

Fixed the hotkeys ~Alt, ~Control, and ~Shift to fire upon press-down rather than release (broken by v1.0.44).
Background: Without the tilde, Alt/Control/Shift fire upon release to avoid taking over both the left and right key. But a specific left/right hotkey like LAlt or RShift fires upon press-down.

1.0.45.01 - November 7, 2006

Fixed FileReadLine and FileSelectFile not to crash or misbehave when other threads interrupt them (broken by v1.0.45). [thanks toralf]

Fixed RegExMatch() so that when there's no match, named subpatterns are properly set to "" in the output array. [thanks PhiLho]

Fixed RegExMatch()'s "J" option to properly write duplicate named subpatterns to the output array. [thanks PhiLho]

Changed SetWorkingDir and #Include DirName to succeed even for a root directory such as C: that lacks a backslash.

Improved DllCall() to display a warning dialog if the called function writes to a variable of zero capacity.

1.0.45 - November 4, 2006

NOTE: Although this release has been extensively tested and is not expected to break any existing scripts, several low-level performance enhancements were made. If you have any mission-critical scripts, it is recommended that you retest them and/or wait a few weeks for any bugs to get fixed.

Added support for regular expressions via RegExMatch(), RegExReplace(), and SetTitleMatchMode RegEx. [thanks Philip Hazel & PhiLho]

Improved performance and memory utilization of StringReplace.

Improved performance of the := operator for expressions and functions involving long strings.

Improved ControlClick with a new option "NA" that avoids activating the target window (this mode also improves reliability in some cases). In addition, it's been documented that SetControlDelay -1 can improve the reliability of ControlClick in some cases. [thanks nnesori]

Changed GUI buttons to default to "no word-wrap" when no width, height, or CR/LF characters were specified. This may solve button display issues under some desktop themes.

Fixed "Transform HTML" for the following characters: &`n><

Fixed misinterpretation of lines starting with "if not is" such as "if not IsDone".

Fixed inability of "Gui Show" to move a window vertically downward to where its bottommost row of pixels is now.

Fixed inability to use GroupActivate as the only line beneath an IF or ELSE.

Fixed inability of the Input command to differentiate between end-keys enclosed in braces and their (un)shifted counterparts; e.g. '{' vs. '['. [thanks Laszlo]

1.0.44.14 - October 2, 2006

NOTE: Although this release has been extensively tested and is not expected to break any existing scripts, several low-level performance enhancements were made. If you have any mission-critical scripts, it is recommended that you retest them and/or wait a few weeks for any bugs to get fixed.

Fixed loop-variables like A_Index when accessed in more than one of a line's parameters. The inaccuracy occurred only when one of those parameters called a function that returned directly from the body of a loop. [thanks NumEric]

Changed ListVars to display ByRef parameters by their own name rather than the caller's.

Changed the Input command to do nothing on Windows 9x (not even setting ErrorLevel and OutputVar).

Raised the limit on the number of GUI fonts from 100 to 200. [thanks philou]

Changed StrLen()/StringLen and internal string-handling to avoid calculating a string's length when possible. Although this enhances performance (especially for large strings), scripts that use DllCall to pass a string via the address operator (&) rather than as a str parameter should call VarSetCapacity(Var, -1) to correct the internally-stored length (if it changed).

Improved performance slightly (above and beyond the StrLen improvement).

1.0.44.13 - September 20, 2006

Fixed ControlGetPos and ControlMove to work with "ahk_id %ControlHWND%". [thanks Hardeep]

Fixed #CommentFlag to affect the line beneath it the same way as other lines. [thanks PhiLho]

Changed A_OSVersion to report Windows Vista as "WIN_VISTA" rather than "".

Added options to set min/max size of GUI windows; for example: Gui +MinSize320x240 +MaxSize640x480

1.0.44.12 - September 13, 2006

Fixed timers interfering with double-clicks in FileSelectFile. [thanks DJAnonimo]

Fixed mouse hook causing a delay when pressing a GUI window's title bar buttons. [thanks Tekl]

Improved GUI windows to have CS_DBLCLKS so that OnMessage() can monitor double clicks via WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK, and WM_MBUTTONDBLCLK. [thanks Hardeep]

Improved ListViews to support logical sorting, which treats digits as numbers rather than mere characters. [thanks Tekl & Hacker]

1.0.44.11 - September 9, 2006

Fixed FileSelectFolder and TreeView to respond properly to mouse clicks when timers are running.

Fixed inability of OnMessage() to consistently monitor certain messages such as WM_NOTIFY. [thanks numEric]

Fixed inability of literal/quoted strings to contain `%.

Fixed continuation sections to support #EscapeChar, #DerefChar, and #Delimiter. [thanks Laszlo]

Changed GroupBox to default to "no word-wrapping". This can be overridden via +Wrap.

Changed/improved the ** operator and "Transform Pow" to support negative bases when the exponent isn't fractional. [thanks Laszlo]

Improved GUI responsiveness during UrlDownloadToFile (especially for slow downloads).

1.0.44.10 - August 27, 2006

Fixed OnMessage() when called from inside a monitor function for the purpose of disabling some other monitor. [thanks Hardeep]

Changed/fixed ImageSearch's TransN option to use RGB vs. BGR as documented. [thanks Tom Lorimor]

Changed the installer to omit the "Run" verb for .ahk files. The "Open" verb is now the default (with a new display-name of "Run Script"). [thanks numEric]

1.0.44.09 - August 9, 2006

Fixed hook hotkeys like $^b not to fire twice when a similar, key-up hotkey exists (like "#b up" ). [thanks Newbie]

Fixed one too many backspaces in asterisk hotstrings whose next-to-last character is a dead key. [thanks Henrique]

Fixed "Gui Color" to work after the background color was previously changed to "default". [thanks Hardeep]

Changed "if var is xdigit" to tolerate a 0x prefix. [thanks Titan]

Added command "Gui +LabelMyGui" to support custom label names (e.g. "MyGuiClose" instead of "2GuiClose"). This also allows multiple GUI windows to share the same set of labels. [thanks Tekl]

1.0.44.08 - July 25, 2006

Fixed "Gui Show" not to unmaximize a window unless the options require it. [thanks foom]

Fixed GuiControl's +/-Left/Right for buttons, checkboxes, and radios. [thanks Hardeep]

Fixed UpDown creation to widen its buddy only when the buddy had no explicit width. [thanks Thalon]

Improved MsgBox/IfMsgBox to support Cancel/Try Again/Continue, as well as a Help button. [thanks jballi]

1.0.44.07 - June 17, 2006

Fixed stack overflow when a registry-loop traverses deeply nested subkeys. [thanks Eggi]

Fixed Hotkey command to report ErrorLevel 0 vs. 51 upon success for joystick hotkeys. [thanks Roland]

Changed ClipboardAll to exclude formats that cause Outlook's MS Word editor to display error dialogs. [thanks deanhill1971]

Changed and improved UrlDownloadToFile to retrieve the file from the remote server vs. the cache. There is a new option to override this. [thanks olfen]

Improved remapping to support destination characters that don't exist on the keyboard (such as F1::ð in English). [thanks DavidT]

1.0.44.06 - June 8, 2006

Fixed remapping-to-modifier such as F1::Control (broken by v1.0.44.05). [thanks formarx]

1.0.44.05 - June 7, 2006

Fixed mouse movement being off by 1 pixel for coordinates very near 0 (broken by v1.0.43). [thanks numEric]

Changed and improved remapping-to-modifier (such as F1::Control) to release the modifier during the script's other uses of Send.

1.0.44.04 - May 31, 2006

Fixed double-colon warning dialog appearing upon launch of certain scripts. (broken by v1.0.44.03)

Fixed combination hotkeys like "a & b" to work even if "b & a" and "b & a up" are also present.

Fixed buddyless UpDown controls to work even if a StatusBar is present. [thanks Titan]

1.0.44.03 - May 29, 2006

Fixed FileExist() to report "X" rather than "" for files whose attributes are all undefined. [thanks Peter]

Fixed Tab controls so that the first Text control added to a new page is auto-positioned correctly even if the previously added control was a Text control on some other page.

Fixed ImageSearch so that a transparent color like TransBlack is as effective in variation mode as non-variation mode. [thanks Troz]

Fixed GetKeyState and KeyWait to accept characters that don't exist in the current keyboard layout (in case the keyboard layout changes after launching the script).

Fixed hotkeys that don't exist in the current keyboard layout (such as ^!ä:: in English) to display a warning and end the auto-execute section. [thanks Androgen Belkin]

Changed and improved ControlSend, Send, Hotstrings, Input, and AltGr handling to use the target window's language rather than the script's. If you use only one keyboard layout on your system, this should not affect anything. [thanks Androgen Belkin]

Improved VarSetCapacity() to interpret a capacity of -1 as "update this variable's internally-stored length". This is useful in cases where a variable has been altered indirectly, such as by passing its address via DllCall().

1.0.44.02 - May 20, 2006

Fixed hotkeys that use "&" and "~" together (e.g. ~a & b and ~LButton & RButton) (broken by v1.0.44). [thanks SlimlinE & Spike]

1.0.44.01 - May 15, 2006

Fixed StatusBar's grabbing of UpDowns that are added after it. [thanks Tekl]

Changed Round() to display exactly N decimal places rather than obeying SetFormat.

1.0.44 - May 14, 2006

Fixed OnClipboardChange to work even when the script is displaying a MsgBox or other dialog.

Fixed FileCreateDir not to report ErrorLevel 1 when the specified directory ends in "\". [thanks Wesley]

Fixed hotkeys Control::, Shift::, and Alt:: to fire on release of the key rather than press-down (broken by v1.0.41).

Fixed loading of icon #1 from nonstandard file types such as .bin.

Fixed ListView creation to obey the text color set by "Gui Font".

Changed and fixed the hotkey tilde prefix (~) so that hotkeys like ~Esc and Esc are considered duplicates; that is, a script cannot define both ~Esc and Esc unless they are under different #IfWin criteria (in which case ~Esc and Esc have been fixed to work properly). [thanks jballi]

Changed and improved ListViews: 1) a new option WantF2 is in effect by default, which causes an F2 keystroke to edit the current row (when not ReadOnly); 2) added LV_Modify(Row, "Vis") to scroll an item into view; 3) drag notifications occur even without AltSubmit; 4) item-change notifications have A_EventInfo set to the row number; 5) ErrorLevel no longer mirrors A_EventInfo in cases where it was never documented to do so (same for GuiContextMenu).

Improved Edit controls to select all text in response to Control-A. This can be disabled via -WantCtrlA.

Added new GUI control types TreeView and StatusBar.

1.0.43.11 - May 1, 2006

Fixed %A_WorkingDir% on Windows 9x, which was sometimes blank. [thanks Points]

Improved BlockInput with a new mode that blocks only physical movement of the mouse, not keystrokes or mouse clicks.

1.0.43.10 - April 28, 2006

Improved PixelGetColor with two alternate modes that work in a broader variety of windows and full-screen apps. [thanks TDMedia]

Improved StringMid to allow "Count" to be omitted to retrieve all characters. [thanks kapege.de]

Improved FileSelectFile to support special folders such as My Computer via CLSID strings (FileSelectFolder and Run already support them).

1.0.43.09 - April 25, 2006

Fixed SendInput not to revert to SendEvent merely because another script has a mouse hook. Only another keyboard hook should do that. [thanks baby-luck]

Fixed LV_GetCount() to work even if the "C" in its name is lowercase.

Changed FileSelectFile to navigate/follow shortcuts (.lnk files) rather than selecting them. There is also a new option to override this. [thanks Veovis & PhiLho]

Added "Gui +LastFoundExist" to detect the existence of a GUI window. [thanks Tekl & Evl]

Added built-in variables A_AppData, A_AppDataCommon, and A_Temp (A_Temp is the folder designated to hold temporary files).

1.0.43.08 - April 17, 2006

Changed SendInput to use "SetKeyDelay -1, 0" when it reverts to SendEvent mode (unless SendEvent's KeyDelay "-1,-1", in which case "-1,-1" is used).

Added directive #NoEnv, which is recommended for all new scripts because:

  1. It significantly improves performance whenever empty variables are used in an expression or command. It also improves DllCall's performance when unquoted parameter types are used (e.g. int vs. "int").
  2. It prevents script bugs caused by environment variables whose names unexpectedly match variables used by the script.
  3. A future version of AutoHotkey such as 1.1 might make this behavior the default (though such a change is not expected for at least a year).

Added built-in variables ComSpec and ProgramFiles to ease the transition to #NoEnv.

Added command EnvGet, which retrieves an environment variable.

1.0.43.07 - April 12, 2006

Fixed inability of "Menu, Tray, Icon" to load icon #1 from file types cpl/scr/drv/ocx/vbx/acm/bpl (broken by v1.0.43.03). Similarly, all icon-capable features have been improved to support these file types. [thanks Winkie & PhiLho]

Fixed the following legacy commands to accept function-calls containing commas: EnvAdd/Sub, LeftClick(Drag), RightClick(Drag). [thanks Titan]

1.0.43.06 - April 9, 2006

Changed ahk_id to operate directly on the specified HWND when it's a control (child). Previously, it operated upon the topmost sub-control if that control had any sub-controls.

Improved Post/SendMessage to fully support strings put into address variables by the receiver (e.g. PostMessage, Msg, &MyVar).

Improved support for control HWND as an alternative to control ClassNN: 1) Added a MouseGetPos option to retrieve control HWND; 2) Added "WinGet ControlListHwnd" to retrieve a list of control HWNDs; 3) Added "ControlGet Hwnd" to retrieve the HWND that corresponds to a control's ClassNN or text.

Added "GuiControlGet FocusV", which gets the focused control's variable name rather than its ClassNN.

1.0.43.05 - April 7, 2006

Fixed and improved support for .ICL files (icon libraries), which was broken by v1.0.43.03. [thanks Tekl]

Changed case sensitivity in hotkey names back to pre-1.0.43.03 behavior: high ANSI letters like Ä and Ü are treated as different hotkeys than their lowercase counterparts. [thanks copa017]

1.0.43.04 - April 4, 2006

Fixed crash of characters above Chr(127) in hotstring abbreviations and the locale-search-from-right mode of InStr() and StringGetPos (broken by v1.0.43.03). [thanks PhiLho & brotherS]

1.0.43.03 - April 3, 2006

Fixed distortion of 16x16 icons loaded via ahk2exe or Menu, Tray, Icon. [thanks Tekl]

Fixed the following to ignore #MaxMem as documented: VarSetCapacity(), FileRead, ClipboardAll, and ControlGet (ListView). [thanks Dippy46]

Changed the following to use locale case insensitivity vs. "A-Z only" insensitivity: hotkey names, hotstring abbreviations, menu names, Input's MatchList, and Gui Tab.

Changed the expression equal operator (=) and the case-insensitive InStr() to use locale case insensitivity when StringCaseSense is Locale or On.

Improved StringCaseSense with a new option Locale that makes string comparisons case insensitive according to the rules of the current user's locale. For example, most English and Western European locales treat the letters A-Z and ANSI letters like Ä and Ü as identical to their lowercase counterparts. [thanks Boskoop & PhiLho]

Improved the Sort command and ListView sorting with a locale-case-insensitive option.

Improved mouse wheel hotkeys (WheelDown/Up) to report the number of wheel turns in A_EventInfo, which allows distinguishing between fast and slow wheel movement. [thanks evl]

Improved FileRead with an option to read only the leading part of a file. [thanks Dippy46]

1.0.43.02 - March 30, 2006

Fixed raw-mode hotstrings not to send the extra string {Raw} (broken by v1.0.43). [thanks stom2006]

Changed SendMode: 1) renamed InputThenEvent to Input; 2) added InputThenPlay, which is the same behavior as the former "Input". This was done because SendEvent is less likely to cause compatibility problems than SendPlay.

1.0.43.01 - March 29, 2006

Fixed mouse clicking at unspecified coordinates in particular apps; e.g. Send {LButton} (broken by v1.0.43). [thanks incith]

Fixed tilde hotkeys so that if they remove a hook, their own key doesn't get stuck down (e.g. Mouse Gestures script and ~LCtrl::Hotkey, RButton, Off). [thanks Stefan Taubenberger]

1.0.43 - March 25, 2006

NOTE: Although this release has been extensively tested and is not expected to break any existing scripts, several changes were made to the sending of keystrokes and mouse clicks. If you have any mission-critical scripts that rely on such features, it is recommended that they be re-tested or that you wait two weeks for any bugs to get fixed.

Fixed AltGr hotkeys that use Send, such as <^>!m::Send ^c. Also fixed AltGr remappings such as F1::RAlt [thanks foxer]

Fixed inability of VarSetCapacity to free the memory of a ByRef parameter. [thanks corrupt]

Fixed hotstring option b0 to show the ending character where you typed it rather than at the end of the replacement.

Improved the speed and reliability of auto-replace hotstrings by defaulting them to SendInput mode. There is also a new hotstring option to change the sending mode.

Improved the reliability of mouse clicks/drags in cases where the user is physically moving the mouse during the event.

Added commands Click and Send {Click}, which are easier to use than MouseClick. They also compensate if the left/right mouse buttons have been swapped via the control panel.

Added command SendMode, which makes Send synonymous with SendInput or SendPlay rather than the default (SendEvent). It also makes Click and MouseMove/Click/Drag use the specified method.

Added two new methods for sending keystrokes and mouse clicks: SendInput and SendPlay. These are generally faster and more reliable. Also, SendPlay allows keystrokes and hotstrings to be accepted by a broader variety of games.

1.0.42.07 - March 9, 2006

Fixed crash of functions that recursively pass ByRef parameters. [thanks PhiLho]

1.0.42.06 - March 7, 2006

Fixed crash of A_ScriptDir (broken by v1.0.42.01).

Fixed Run/RunWait's passing of an extra space character at the end of the parameter list when launching shortcuts. [thanks arbe]

1.0.42.05 - March 6, 2006

This is functionally identical to the previous release. The previous release's EXE and BIN were about 1% larger than they should have been due to a compiler quirk.

1.0.42.04 - March 6, 2006

Fixed ClipboardAll when used with apps such as Word and Excel (broken by previous version). [thanks Roussi Nikolov]

Fixed ClipboardAll to prevent appearance of bookmarks in MS Word. [thanks Laszlo & 02clams]

Fixed A_TimeIdlePhysical being disrupted by simulated AltGr keystrokes. [thanks skrommel]

Fixed Send {Blind} causing sticking Win/Ctrl/Alt/Shift when the user released such a key in the middle of a Send.

Improved the Send command not to press and release the shift key after each uppercase letter (e.g. Send ABC).

Improved SoundSet/Get to support ComponentType "Headphones". [thanks Tobias Winkler]

1.0.42.03 - February 20, 2006

Fixed crash of WinActivate in certain rare circumstances. [thanks twhyman]

Changed hotstrings to require the mouse hook by default (see next item). This can be prevented via #Hotstring NoMouse.

Improved hotstrings to take into account mouse clicks. This allows a hotstring to fire when the user's click focuses a new control or moves the caret.

Improved the Random command with a means to set a new seed. [thanks Laszlo]

Improved #ClipboardTimeout to reattempt data reading when the first attempt fails. Previously, only the opening of the clipboard was reattempted.

Added built-in variable A_LastError for DllCall and Run/RunWait. It contains the result from the OS's GetLastError().

1.0.42.02 - February 17, 2006

Fixed UpDown controls to snap onto the right control when inside a Tab control that contains a ListView. [thanks Thalon]

Improved the Hotkey command with an "Off" option (typically used to create a hotkey in an initially-disabled state).

Improved A_Cursor not to interfere with double-clicking. [thanks Shimanov]

1.0.42.01 - February 15, 2006

Fixed the following variables to work correctly when concatenated onto other strings: A_DetectHiddenWindows, A_DetectHiddenText, A_AutoTrim, and A_StringCaseSense. [thanks jballi]

Fixed KeyWait and GetKeyState in the subroutines of hook hotkeys (broken by v1.0.39) [thanks Laszlo & TobStro]. For example:

~LControl::
if not GetKeyState("LControl")
    ToolTip LControl is not down as expected (this bug affected some systems but not others).
return

1.0.42 - February 10, 2006

Fixed expressions such as "If not Installed" not to be misinterpreted as "If not in List". [thanks Toralf]

Fixed certain unusual situations where a hotkey would unnecessarily require the keyboard hook.

Fixed vkNNN hotkeys to be handled by the hook when that VK is also used as a prefix for other hotkeys.

Fixed #IfWin's automatic disabling of prefix keys to work properly when Suspend is ON.

Fixed minor hotkey issues on Windows 95/98/Me: 1) The wildcard prefix (*) is ignored and such hotkeys are put into effect rather than being disabled; 2) Non-wildcard hotkeys that are a subset of a wildcard hotkey are put into effect rather than being disabled; 3) A left/right hotkey such as >#x is put into effect as Win-X rather than simply "X".

Changed the Hotkey command to create a new variant (when appropriate) rather than always updating any existing hotkey of that name. This only affects scripts that use v1.0.41's #IfWin directive.

Changed hotkeys to recognize ^!c as being the same as !^c (different symbol order). This also affects the Hotkey command.

Improved the Hotkey command to support UseErrorLevel and context-sensitive hotkeys (via "Hotkey IfWinActive/Exist").

Improved #IfWinActive/Exist to support Windows 9x. In addition, the keyboard hook is now avoided whenever possible. Finally, #IfWin now sets the Last Found Window.

Improved the following commands to support TListBox/TComboBox and possibly others: Control (Add/Delete/Choose/ChooseString); and ControlGet (FindString/Choice/List).

Added support for hotkey and hotstring variants (duplicates). Such hotkeys perform a different action (or none at all) depending on the type of window that is active or exists.

1.0.41.02 - February 1, 2006

Changed "GuiControl Move" to reduce flickering when resizing or moving controls [thanks Serenity]. However, this may cause painting artifacts for some control types under certain circumstances. If so, please update your scripts to use GuiControl MoveDraw instead.

1.0.41.01 - January 31, 2006

Fixed AltGr hotkeys that send AltGr characters such as "<^>!a::Send \" in German. [thanks AGU]

Fixed Gui +Disable/AlwaysOnTop to work even if other options are present on the same line. [thanks evl]

Improved syntax to support having a command on the same line as an open-brace. [thanks segfault]

1.0.41 - January 19, 2006

Fixed "Transform HTML", which was broken by v1.0.40.02. [thanks Rabiator]

Improved syntax to support One True Brace (OTB) style with IFs, ELSEs, functions, and normal loops.

Added built-in variable A_AhkPath, which contains the full path and name of AutoHotkey.exe (if available).

Added directives #IfWinActive/Exist to make selected hotkeys and hotstrings active only in the windows you specify.

1.0.40.12 - January 11, 2006

Fixed memory leak when GuiControl loaded some types of images into a Picture control. [thanks beardboy]

Fixed inability of ToolTip to reappear after it was destroyed externally via Alt-F4, WinClose, etc.

1.0.40.11 - December 12, 2005

Fixed "GuiControl, %Var%" when Var is blank or contains only a window number. It now updates the control's contents rather than doing nothing. [thanks MisterW]

Scripts in UTF-8 format can now be loaded (BOM bytes "EF BB BF" at start of file). [thanks D. J. Rausch]

1.0.40.10 - December 1, 2005

Improved ImageSearch and the fast-mode PixelSearch to support 256-color screens (8-bit).

1.0.40.09 - November 21, 2005

Fixed hotkeys such as ^q to trigger the "*q up" hotkey upon release instead of the ^q hotkey a second time.

1.0.40.08 - November 16, 2005

Fixed ComboBoxes to yield the proper selection when: 1) GuiControl altered the Edit field; or 2) the user manually typed a matching item into an AltSubmit ComboBox. [thanks Tekl]

1.0.40.07 - November 16, 2005

Fixed memory leak when a script called a function recursively. [thanks Laszlo]

1.0.40.06 - November 10, 2005

Fixed crash of abs() when called with an empty string. [thanks Laszlo]

Fixed the number -0x8000000000000000 in expressions. [thanks Laszlo]

1.0.40.05 - November 4, 2005

Fixed Ceil(), Floor(), and "Transform Ceil/Floor" to give the correct answers for all inputs. [thanks Litmus Red]

Fixed remapping so that "Enter" can be a destination key. [thanks jocamero]

Changed ahk_id to work on hidden child windows (controls) without the need for DetectHiddenWindows.

Improved Post/SendMessage to accept quoted/literal strings for wParam/lParam.

1.0.40.04 - November 2, 2005

Fixed WinGetText and ControlGetText to work on apps that respond incorrectly to WM_GETTEXT (such as AIM). [thanks Yarbuck]

Changed the program to align all data on 32-bit boundaries, which solves DllCall structure issues. [thanks Shimanov]

1.0.40.03 - October 26, 2005

Because some other solution is necessary, the 1-pixel increase for Checkboxes and Radio Buttons in v1.0.40.01 has been undone.

1.0.40.02 - October 24, 2005

Fixed "Transform Unicode" to be able to produce a Unicode string whose first byte is zero. [thanks Shimanov & Laudrin]

Reduced the size of compiled scripts by 20 KB by having the compiler minimize code size in sections that don't affect script performance.

1.0.40.01 - October 21, 2005

Fixed the title bars of script-owned windows to respond correctly to left and right down-clicks generated by the script's own hotkeys. [thanks Shimanov]

Fixed inability of OnMessage to consistently monitor certain messages such as WM_GETMINMAXINFO.

Changed Critical to be temporarily off during MsgBox and other dialogs.

Added command "Thread NoTimers", which prevents a thread from being interrupted by timers.


CHANGES FOR GUI

Fixed GuiContextMenu's A_GuiControl to be accurate for Text and Picture controls inside a GroupBox or Tab control.

Fixed GuiControl to properly redraw Picture controls and transparent Text controls when they are given new contents.

Increased the width of auto-sized Checkboxes and Radio Buttons by 1 pixel to prevent wrapping on certain desktop themes.

1.0.40 - October 11, 2005

Fixed the v1.0.39 mouse and keyboard hooks so that failure to activate them behaves correctly.

Changed the Send command for Russian and other keyboard layouts to be able to produce more ASCII characters (such as the letters A to Z). This does not affect most Western European and English layouts.

Changed hotkeys that are a subset of a wildcard hotkey to take precedence. For example, if *x and ^x are both hotkeys, pressing ^x will now trigger ^x rather than *x.

Improved syntax so that double colons do not need to be escaped.

Improved Send and ControlSend with option {Blind}, which leaves Ctrl/Alt/Shift/Win pressed down if they started that way.

Added a new remapping method that is more simple and powerful than the old methods. For example:

a::b  ; Make the "a" key become "b".
Capslock::Ctrl  ; Make Capslock become a Control key.
XButton1::LButton  ; Make the fourth mouse button behave like the left mouse button.
RCtrl::RWin  ; Make the right Control key become the right Windows key.

1.0.39 - October 3, 2005

The last change below may impact scripts that use the keyboard or mouse hook. If you have any mission-critical scripts that rely on them, it is recommended that they be re-tested or that you wait two weeks for any bugs to get fixed.

Fixed inability to have lines consisting entirely of spaces and tabs in continuation sections. [thanks JSLover]

Fixed hotkeys such as "LButton & LCtrl" to auto-install the mouse hook. [thanks JSLover]

Added a dedicated thread to service the keyboard and mouse hooks. This eliminates mouse/keyboard lag during long operations such as UrlDownloadToFile. It also prevents keys from getting "stuck down". The new thread consumes only 36 KB of memory and it exists only in scripts that use the hooks.

1.0.38.06 - September 27, 2005

Some optimizations were made to the keyboard and mouse hooks. If you have any mission-critical scripts that rely on them, it is recommended that they be re-tested or that you wait two weeks for any bugs to get fixed.

Fixed continuation lines that start with "AND" and "OR" to work even when the next character is in the set "()!~*&-+". [thanks Decarlo110]

Fixed hotkeys/labels such as "(::" and "(MyLabel):" not to be misinterpreted as continuation sections. [thanks whismerhill]

1.0.38.05 - September 23, 2005

Fixed "Menu Show" (broken in the previous version) to call the selected menu item's subroutine prior to executing the command beneath "Menu Show". [thanks Roussi]

1.0.38.04 - September 21, 2005

Fixed hotstring reset option (Z), which could crash a script. [thanks arbe]

Improved threads to reduce the chance of an interruption occurring before even a single line can execute. [thanks Paul Haines]

Added command Critical, which prevents the current thread from being interrupted by other threads. It also buffers incoming events until the critical thread ends.

1.0.38.03 - September 12, 2005

Fixed key-up hotkeys so that having both a wildcard and a non-wildcard version of the same hotkey works even when the non-wildcard down-hotkey is defined before the non-wildcard up-hotkey. [thanks Paul Haines]

Improved Edit controls with the option "WantTab", which allows the tab keystroke to produce a tab character.

1.0.38.02 - September 8, 2005

Fixed inability of "WinSet Region" to accept a negative X-coordinate.

Fixed radio buttons to start a new radio group for each new tab control or page. [thanks Toralf]

Changed VK hotkeys such as "^VK24::" to avoid the use of the keyboard hook when possible. As a side-effect, such hotkeys are now triggered by any key that has the specified virtual key (e.g. both Home and NumpadHome for VK24). [thanks Orion]

Improved the Hotkey command with option "On" to change a hotkey's label and enable it in one step. [thanks Toralf]

Improved "GuiControl Disable/Enable/Hide/Show" to recognize an optional 1 or 0 suffix to simplify scripts. [thanks Toralf]

1.0.38.01 - September 5, 2005

Fixed GuiContextMenu's A_GuiControl to be non-blank when the user right-clicks a Text, Picture, or Tab control.

Changed OnMessage() to receive LPARAM as an unsigned vs. signed number.

1.0.38 - September 3, 2005

Fixed the Input command to properly capture keystrokes sent by a hotkey or hotstring for which the user is physically holding down SHIFT, CTRL, ALT, or WIN. [thanks wildfire]

Changed "GuiControl, Text" to set the text of a ComboBox's Edit control rather than new choices for its drop-list. Please update your scripts accordingly.

Improved FileMoveDir with an option to unconditionally overwrite the target folder.

Added built-in function IsLabel(), which verifies that a label exists before you Gosub it. [thanks Tekl]

Added built-in function OnMessage(), which can receive custom messages and monitor system messages.

Added a WinLIRC client script that responds to signals from a hand-held remote control. WinLIRC is an open-source utility that captures infrared signals from virtually any brand of remote control.

 


Visit http://www.autohotkey.com/changelog/ for the older changes and a list of planned features.