HOME

TheInfoList



OR:

AutoHotkey is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
custom
scripting language A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled. A scripti ...
for Microsoft Windows, initially aimed at providing easy
keyboard shortcut computing, a keyboard shortcut also known as hotkey is a series of one or several keys to quickly invoke a software program or perform a preprogrammed action. This action may be part of the standard functionality of the operating system or ...
s or hotkeys, fast
macro Macro (or MACRO) may refer to: Science and technology * Macroscopic, subjects visible to the eye * Macro photography, a type of close-up photography * Image macro, a picture with text superimposed * Monopole, Astrophysics and Cosmic Ray Observat ...
-creation and
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
automation Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
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 (for example, overriding the default Windows
control key In computing, a Control key is a modifier key which, when pressed in conjunction with another key, performs a special operation (for example, ); similar to the Shift key, the Control key rarely performs any function when pressed by itself. ...
commands with their
Emacs Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, ...
equivalents). 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 Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Programm ...
, open documents, and emulate keystrokes or
mouse A mouse ( : mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus' ...
clicks and movements. AutoHotkey scripts can also assign, retrieve, and manipulate variables, run loops and manipulate
windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
files File or filing may refer to: Mechanical tools and processes * File (tool), a tool used to ''remove'' fine amounts of material from a workpiece **Filing (metalworking), a material removal process in manufacturing ** Nail file, a tool used to gent ...
, and folders. These commands can be triggered by a
hotkey computing, a keyboard shortcut also known as hotkey is a series of one or several keys to quickly invoke a software program or perform a preprogrammed action. This action may be part of the standard functionality of the operating system or ...
, such as a script that would open an
internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a ''internetworking, network of networks'' that consists ...
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 A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjuncti ...
receiving an
em dash The dash is a punctuation mark consisting of a long horizontal line. It is similar in appearance to the hyphen but is longer and sometimes higher from the baseline. The most common versions are the endash , generally longer than the hyphen b ...
, or nothing at all. AutoHotkey also allows for "hotstrings" that will automatically replace certain text as it is typed, 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 ( GUI windows), working with the system registry, or using the Windows API by calling functions from DLLs. The scripts can be compiled into an
executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data fil ...
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: * Remapping the keyboard, such as from
QWERTY QWERTY () is a keyboard layout for Latin-script alphabets. The name comes from the order of the first six keys on the top left letter row of the keyboard ( ). The QWERTY design is based on a layout created for the Sholes and Glidden ty ...
to Dvorak or other alternative keyboard layouts. * Using shortcuts to fill in frequently-used file names or other phrases. * Typing punctuation not provided on the keyboard, such as curved quotes (“…”). * Typing other non-keyboard characters such as the sign used, e.g., in describing a room as 10′×12′. * Controlling the mouse cursor with a keyboard or
joystick A joystick, sometimes called a flight stick, is an input device consisting of a stick that pivots on a base and reports its angle or direction to the device it is controlling. A joystick, also known as the control column, is the principal cont ...
. * Opening programs, documents, and websites with simple keystrokes. * Adding a
signature A signature (; from la, signare, "to sign") is a Handwriting, handwritten (and often Stylization, stylized) depiction of someone's name, nickname, or even a simple "X" or other mark that a person writes on documents as a proof of identity and ...
to
e-mail Electronic mail (email or e-mail) is a method of exchanging messages ("mail") between people using electronic devices. Email was thus conceived as the electronic ( digital) version of, or counterpart to, mail, at a time when "mail" mean ...
,
message boards An Internet forum, or message board, is an online discussion site where people can hold conversations in the form of posted messages. They differ from chat rooms in that messages are often longer than one line of text, and are at least temporar ...
, etc. * Monitoring a system and automatically closing unwanted programs. * Scheduling an automatic reminder, system scan, or backup. * Automating repetitive tasks. * Filling out forms automatically. *
Prototyping A prototype is an early sample, model, or release of a product built to test a concept or process. It is a term used in a variety of contexts, including semantics, design A design is a plan or specification for the construction of an object o ...
before implementing in another, more time-consuming, programming language.


History

The first public
beta Beta (, ; uppercase , lowercase , or cursive ; grc, βῆτα, bē̂ta or ell, βήτα, víta) is the second letter of the Greek alphabet. In the system of Greek numerals, it has a value of 2. In Modern Greek, it represents the voiced labi ...
of AutoHotkey was released on November 10, 2003, after author Chris Mallett's proposal to integrate
hotkey computing, a keyboard shortcut also known as hotkey is a series of one or several keys to quickly invoke a software program or perform a preprogrammed action. This action may be part of the standard functionality of the operating system or ...
support into AutoIt v2 failed to generate response from the AutoIt community. Mallett built a new 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 Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and in ...
because of "other projects repeatedly taking AutoIt code" and "setting themselves up as competitors". In 2010, AutoHotkey v1.1 (originally called AutoHotkey_L) became the platform for ongoing development of AutoHotkey. In late 2012, it became the official branch. Another port of the program is AutoHotkey.dll.


Version 2

In July 2021, the first AutoHotkey v2 beta was released. The first release candidate was released on November 20th 2022 with the full release of v2.0.0 planned later in the year.


Examples

The following script will allow a user to search for a particular word or phrase using
Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
. After copying text from any application to the
clipboard A clipboard is a thin, rigid board with a clip at the top for holding paper in place. A clipboard is typically used to support paper with one hand while writing on it with the other, especially when other writing surfaces are not available. The ...
, pressing the configurable hotkey will open the user's default
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
and perform the search. #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": ::afaik::as far as I know


User-contributed features

There are extensions/interops/inline script libraries available for usage with/from other programming languages: * VB/ C# ( .NET) *
Lua Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
*
Lisp A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech. Types * A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
* ECL * Embedded
machine code In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a ver ...
*
VBScript VBScript (''"Microsoft Visual Basic Scripting Edition"'') is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers ...
/
JScript JScript is Microsoft's legacy software, legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer 11 and older. JScript is implemented as an Active Scripting engine. This means that it can be "plugged in" to OLE Aut ...
(
Windows Scripting Host The Microsoft Windows Script Host (WSH) (formerly named Windows Scripting Host) is an automation technology for Microsoft Windows operating systems that provides scripting abilities comparable to batch files, but with a wider range of supported ...
) Other major plugins enable support for: *
Aspect-oriented programming In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding behavior to existing code (an advice) ''without'' modifying ...
** Function hooks * COM wrappers * Console interaction * Dynamic code generation * HIDs *
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical user interface, graphical web browsers developed by Microsoft which was used in the Microsoft Wind ...
automation * GUI creation * Synthetic programming * Web services * Windows event hooks


Malware

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 In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpre ...
. Inevitably, some
malware Malware (a portmanteau for ''malicious software'') is any software intentionally designed to cause disruption to a computer, server, client, or computer network, leak private information, gain unauthorized access to information or systems, de ...
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.


See also

* AutoIt (for Windows) *
AutoKey AutoKey is a free, open-source scripting application for Linux. AutoKey allows the user to define hotkeys and trigger phrases which expand to predefined text, automating frequent or repetitive tasks such as correcting typographical errors or co ...
(for Linux) * Automator (for
Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
) *
Bookmarklet A bookmarklet is a bookmark stored in a web browser that contains JavaScript commands that add new features to the browser. They are stored as the URL of a bookmark in a web browser or as a hyperlink on a web page. Bookmarklets are usually small ...
(for web browsers) * iMacros (for Firefox, Chrome, and Internet Explorer) *
Keyboard Maestro Keyboard Maestro is a closed-source commercial macOS-based application that allows automation of routine functions, such as navigating running applications, opening documents, typing text, expanding abbreviations, and controlling web application ...
(for Macintosh) *
KiXtart KiXtart is a closed source free-format scripting language for Windows. It is described as a logon script processor and enhanced batch scripting language by the official website. Its name is a portmanteau of "kick start". Overview KiXtart is devel ...
(for Windows) *
Macro Express Macro Express is a Windows-based application that allows automation of routine functions, such as filling out web forms, opening programs, and performing mouse clicks, by means of a simple, specialized programming language with support for variabl ...
(for Windows) * Winbatch (for Windows)


References


External links

*
AutoHotkey Foundation LLC
{{DEFAULTSORT:Autohotkey Automation software Free system software Free software programmed in C++ Windows-only free software