![]() | |
Developer(s) | Chris Mallett, Steve Gray |
---|---|
Initial release | November 10, 2003; 21 years ago (2003-11-10) (Chris Mallet)[1] July 18, 2008; 16 years ago (2008-07-18) (Steve Gray)[2][3] |
Stable release | |
Repository | |
Operating system | Microsoft Windows |
Type | Scripting languageAutomationGUIutility |
License | GPLv2[5] |
Website | www![]() |
AutoHotkey is afree and open-source customscripting language forMicrosoft Windows, primarily designed to provide easykeyboard shortcuts or hotkeys, fastmacro-creation andsoftwareautomation to allow users of most computer skill levels to automate repetitive tasks in any Windows application. It can easily extend or modify user interfaces (for example, overriding the default Windowscontrol key commands with theirEmacs equivalents).[6] The installation package includes an extensive help file; web-based documentation is also available.[7]
AutoHotkey scripts can be used to launchprograms, open documents, and emulatekeystrokes ormouse clicks and movements.[8] They can also assign, retrieve, and manipulatevariables, runloops, and manipulatewindows,files, andfolders. They can be triggered by ahotkey, such as a script that opens aninternetbrowser when theuser pressesCtrl+Alt+I on the keyboard. Keyboard keys can also be remapped and disabled—for example, so that pressingCtrl+M produces anem dash in theactive window.[9] AutoHotkey also allows "hotstrings" that automatically replace certain text as it is typed, such as assigning the string "btw" to produce the text "by the way", or the text "%o" to produce "percentage of".[10] Scripts can also be set to run automatically at computer startup, with no keyboard action required—for example, for performing file management at a set interval.[11]
More complex tasks can be achieved with custom data entry forms (GUI windows), working with thesystem registry, or using the WindowsAPI by calling functions fromDLLs. The scripts can becompiled into standaloneexecutable files that can be run on other computers without AutoHotkey installed. TheC++ source code can be compiled withVisual Studio Express.
AutoHotkey allows memory access through pointers, as inC.[12]
Some uses for AutoHotkey:
The first publicbeta of AutoHotkey was released on November 10, 2003,[1] after author Chris Mallett's proposal to integratehotkey support intoAutoIt v2 failed to generate response from the AutoIt community.[13][14] Mallett built a new program from scratch basing the syntax on AutoIt v2 and using AutoIt v3 for some commands and the compiler.[15] Later, AutoIt v3 switched fromGPL toclosed source because of "other projects repeatedly taking AutoIt code" and "setting themselves up as competitors".[16]
In 2010, AutoHotkey v1.1 (originally called AutoHotkey_L) became the platform for ongoing development of AutoHotkey.[17] In late 2012, it became the official branch.[18] Another port of the program is AutoHotkey.dll.[19] A well known fork of the program is AutoHotkey_H,[20][21] which has its own subforum on the main site.[22]
In July 2021, the first AutoHotkey v2 beta was released.[23][24] The first release candidate was released on November 20, 2022, with the full release of v2.0.0 planned later in the year.[25]On December 20, 2022, version 2.0.0 was officially released.[26] On January 22, 2023, AutoHotkey v2 became the official primary version. AutoHotkey v1.1 became legacy and no new features were implemented, but this version was still supported by the site.[27] On March 16, 2024, the final update of AutoHotkey v1.1 was released. AutoHotkey v1.1 has now reached its end of life.[28]
The following script searches for a particular word or phrase usingGoogle. After the user copies text from any application to theclipboard, pressing the configurable hotkey⊞ Win+G opens the user's defaultweb browser and performs the search.
#g::Run"https://www.google.com/search?q=".A_Clipboard
The following script defines a hotstring that enables the user to typeafaik in any program and, when followed by an ending character, automatically replace it with "as far as I know":
::afaik::asfarasIknow
AutoHotKey extensions, interops and inline script libraries are available for use with and from other programming languages, including:
Other major plugins enable support for:
When AutoHotkey is used to make standalone software for distribution, that software must include the part of AutoHotkey itself that understands and executes AutoHotkey scripts, as it is aninterpreted language. Inevitably, somemalware has been written using AutoHotkey.[44] Whenanti-malware products attempt to earmark items of malware that have been programmed using AutoHotkey, they sometimes falsely identify AutoHotkey as the culprit rather than the actual malware.[citation needed]
GNU GENERAL PUBLIC LICENSE Version 2, June 1991