AutoHotkey is an open-source utility and can automate almost anything by sending keystrokes and mouse clicks. You can write macros by hand or use the macro recorder. You can also create hotkeys for keyboard, mouse, joystick, and handheld remote controls. Virtually any key, button, or combination can become a hotkey. Similarly, you can define abbreviations that expand as you type them. For example, typing btw can automatically produce by the way. Finally, you can create custom data entry forms, user interfaces, and menu bars.
Other features include remap keys, change soundcard settings (like volume or mute), use a joystick or keyboard as a mouse; make any window transparent, always-on-top, or alter its shape; manipulate the clipboard, customize the tray menu's icon and menu items, run existing AutoIt v2 scripts, and convert any script into an EXE file that can be run on any PC.
What is new in this release:
- 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, CtrlBreak, Pause, LWin and RWin, with the exception that multimedia keys 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
What is new in version 1.1.26.00:
- 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.
What is new in version 1.1.25.01:
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.
What is new in version 1.1.24.07:
- 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.
- Added Tab3 control type, solving a number of issues with Tab controls.
- Fixed GuiControl to update controls when adding/deleting tabs.
+Hiddenlosing effect on controls in a tab.
- Fixed disabled tab controls to ignore Ctrl+Tab.
Gui Tabwithout parameters to start a new radio group if applicable.
Gui Tabwith parameters already had this effect.
What is new in version 18.104.22.168:
- Fixed a theoretical issue with loading scripts from weird/very long paths.
- Ahk2Exe: Fixed Unicode in compiled scripts (broken by v1.1.23.00 release).
What is new in version 22.214.171.124:
- Fixed some issues with SetTimer Delete.
- KeyHistory's timer count erroneously included deleted timers.
- Calling KeyHistory within a thread started by a timer crashed the script if the timer had been deleted but not turned off.
- Deleting the most recently created timer prevented subsequently created timers from working unless ALL timers were deleted.
What is new in version 1.1.22.02:
Version 1.1.22.02 may contain unspecified bug fixes and features.
What is new in version 1.1.21.00:
Version 1.1.21.00 may contain unspecified bug fixes and features.
What is new in version 1.1.16.05:
Version 1.1.16.05 may contain unspecified bug fixes and features.