AutoHotkey


AutoHotkey is a free, open-source custom scripting language for Microsoft Windows, initially aimed at providing easy keyboard shortcuts or hotkeys, fast macro-creation and software automation that allows users of most levels of computer skill to automate repetitive tasks in any Windows application. User interfaces can easily be extended or modified by AutoHotkey. The AutoHotkey installation includes its own extensive help file, and web-based documentation is also available.

Features

AutoHotkey scripts can be used to launch programs, open documents, emulate keystrokes, Unicode characters, and mouse clicks and movements. AutoHotkey scripts can also assign, retrieve, and manipulate variables, run loops and manipulate windows, files, and folders. These commands can be triggered by a hotkey, such as a script that would open an internet browser whenever the user presses on the keyboard. Keyboard keys can also be remapped or disabled, such that pressing, for example, might result in the active window receiving an en dash, or nothing at all. AutoHotkey also allows for 'hotstrings' that will automatically replace certain text as it is typed; the most typical use for hotstrings is expanding abbreviations, such as assigning the string "btw" to produce the text "by the way" when typed, or the text "%o" to produce "percentage of". Further, some scripts can be initiated automatically at computer startup and need not interact with the keyboard at all, perhaps performing file manipulation at a set interval.
More complex tasks can be achieved with custom data entry forms, working with the system registry, or using the Windows API by calling functions from DLLs. The scripts can be compiled into an executable file that can be run on other computers that do not have AutoHotkey installed. The source code is in C++ and can be compiled with Visual Studio Express.
Memory access through pointers is allowed just as in C.
Some uses for AutoHotkey:
The first public beta of AutoHotkey was released on November 10, 2003 after author Chris Mallett's proposal to integrate hotkey support into AutoIt v2 failed to generate response from the AutoIt community. So the author began his own program from scratch basing the syntax on AutoIt v2 and using AutoIt v3 for some commands and the compiler. Later, AutoIt v3 switched from GPL to closed source because of "other projects repeatedly taking AutoIt code" and "setting themselves up as competitors."
In 2010, AutoHotkey v1.1 became the platform for ongoing development of AutoHotkey. In late 2012, it became the official branch. Another port of the program is AutoHotkey.dll.

Examples

The following script will allow a user to search for a particular word or phrase using Google. After copying text from any application to the clipboard, pressing the configurable hotkey will open the user's default web browser and perform the search.

  1. g::Run http://www.google.com/search?q=%clipboard%

The following script defines a hotstring that enables the user to type "afaik" in any program and have it automatically replaced with "as far as I know":


The example below makes replace selected text in an editor with a quoted version of that text. It illustrates the use of functions, arguments and default argument values.
^+q::QuoteSelection ; Ctrl+Shift+Q
QuoteSelection
GetSelection
PasteText
Quote

User-contributed features

There are extensions/interops/inline script libraries available for usage with/from other programming languages:
Other major plugins enable support for:
When AutoHotkey is used to make self-contained software for distribution, that software must include the part of AutoHotkey itself that understands and executes AutoHotkey scripts, as it is an interpreted language. Inevitably, some malware has been written using AutoHotkey. When anti-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.