AutoHotkey is a free, open-source scripting language for Windows that allows users to easily create small to complex scripts for all kinds of tasks such as: form fillers, auto-clicking, macros, etc.

Features

  • Free & open source (GNU General Public License).
  • A keyboard, joystick, and mouse remapper.
  • A word recognition engine that expands abbreviations as you type them (auto-replace).
  • A simple yet powerful hotkey (shortcut key) scripting language for Windows, supporting both mouse and keyboard macros (if you're new to scripting, it might be easier than you think; check out the quick-start tutorial).
  • A regular scripting language (backward compatible with most existing AutoIt2 scripts). The program includes a script compiler that converts a script to an EXE. It also includes AutoScriptWriter, a macro recorder written by Larry Keys.

What's New

Changed GroupActivate and GroupClose to behave more intuitively:

  • Evaluate windows against the window group as a whole, not individual window specifications.
  • When GroupClose indirectly causes another matching window to activate, leave it active even if it isn't matched by the same window specification.
  • Contributions by jeeswg (pull requests #186, #235, #240, #249, #273, #274):
  • Backported operators !==, >>> and >>>= from v2.
  • Backported A_InitialWorkingDir from v2.
  • Backported File.Handle from v2.
  • Backported A_Clipboard from v2.
  • Backported IsSet() from v2.

Bug-fixes:

  • Fixed a spelling error in the #Warn Unreachable message.
  • Fixed FileCreateDir handling of paths containing ".." or "/".
  • Fixed some issues with FileSelectFile's RootDir\Filename parameter:
  • Filename not being used when RootDir is a badly formatted CLSID.
  • Undefined behaviour for long paths when GetShortPathName fails (such as when long path awareness is disabled or there's a default filename which isn't an existing file).
  • Fixed FileSetTime to set A_LastError if it finds no files.
  • Fixed EnvAdd/+= losing precision when adding 115,292,150,461+ seconds.
  • Fixed the keyboard hook reinserting a suppressed dead key when Enter is pressed, such as in the sequence 'o{Enter} when the following is true:
  • A separate script has suppressed "ò" due to :?*:ò::.
  • The current process also has active hotstrings.
  • The other process installed its hook last.
  • Fixed ControlGet List "Selected" option repeating output on x64 when the target is 32-bit.
  • Fixed stack corruption for ControlGet List "Count" options.