AutoHotkey

Last updated
AutoHotkey
Developer(s) Chris Mallett, Steve Gray
Initial releaseNovember 10, 2003;20 years ago (2003-11-10) (Chris Mallet) [1]
July 18, 2008;15 years ago (2008-07-18) (Steve Gray) [2] [3]
Stable release
v2.0.12 / March 23, 2024;20 days ago (2024-03-23) [4]
Repository
Operating system Microsoft Windows
Type Scripting language Automation GUI utility
License GPLv2 [5]
Website www.autohotkey.com OOjs UI icon edit-ltr-progressive.svg

AutoHotkey is a free and open-source custom scripting language for Microsoft Windows, primarily designed to provide easy keyboard shortcuts or hotkeys, fast macro-creation and software automation 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 Windows control key commands with their Emacs equivalents). [6] The installation package includes an extensive help file; web-based documentation is also available. [7]

Contents

Features

AutoHotkey scripts can be used to launch programs, open documents, and emulate keystrokes or mouse clicks and movements. [8] They can also assign, retrieve, and manipulate variables, run loops, and manipulate windows, files, and folders. They can be triggered by a hotkey, such as a script that opens an internet browser when the user presses Ctrl+Alt+I on the keyboard. Keyboard keys can also be remapped and disabled—for example, so that pressing Ctrl+M produces an em dash in the active 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 the system registry, or using the Windows API by calling functions from DLLs. The scripts can be compiled into standalone executable files that can be run on other computers without AutoHotkey installed. The C++ source code can be compiled with Visual Studio Express.

AutoHotKey allows memory access through pointers, as in C. [12]

Some uses for AutoHotkey:

History

The first public beta of AutoHotkey was released on November 10, 2003, [1] after author Chris Mallett's proposal to integrate hotkey support into AutoIt 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 from GPL to closed 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]

Version 2

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]

Examples

The following script searches for a particular word or phrase using Google. After the user copies text from any application to the clipboard, pressing the configurable hotkey ⊞ Win+G opens the user's default web 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 type afaik in any program and, when followed by an ending character, automatically replace it with "as far as I know":

::afaik::asfarasIknow

User-contributed features

AutoHotKey extensions, interops and inline script libraries are available for use with and from other programming languages, including:

Other major plugins enable support for:

Malware

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 an interpreted language. Inevitably, some malware has been written using AutoHotkey. [44] 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.[ citation needed ]

See also

Related Research Articles

In computing terminology, a macro virus is a virus that is written in a macro language: a programming language which is embedded inside a software application. Some applications, such as Microsoft Office, Excel, PowerPoint allow macro programs to be embedded in documents such that the macros are run automatically when the document is opened, and this provides a distinct mechanism by which malicious computer instructions can spread. This is one reason it can be dangerous to open unexpected attachments in e-mails. Many antivirus programs can detect macro viruses; however, the macro virus' behavior can still be difficult to detect.

<span class="mw-page-title-main">Scroll Lock</span> Computer key

Scroll Lock is a lock key on most IBM-compatible computer keyboards. Depending on the operating system, it may be used for different purposes, and applications may assign functions to the key or change their behavior depending on its toggling state. The key is not frequently used, and therefore some reduced or specialized keyboards lack Scroll Lock altogether.

Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6.0 built into most desktop Microsoft Office applications. Although based on pre-.NET Visual Basic, which is no longer supported or updated by Microsoft, the VBA implementation in Office continues to be updated to support new Office features. VBA is used for professional and end-user development due to its perceived ease-of-use, Office's vast installed userbase, and extensive legacy in business.

<span class="mw-page-title-main">Keyboard shortcut</span> Series of computer keys to quickly invoke a software program or perform a preprogrammed action

In 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 application program, or it may have been written by the user in a scripting language. Some integrated keyboards also include pointing devices; the definition of exactly what counts as a "key" sometimes differs.

<span class="mw-page-title-main">The Bat!</span> Email client for Windows

The Bat! is an email client for the Microsoft Windows operating system, developed by Moldovan software company Ritlabs. It is sold as shareware and offered in three editions: Home Edition, Professional Edition, and Voyager which is a portable version and is included with Professional Edition.

<span class="mw-page-title-main">Quicksilver (software)</span>

Quicksilver is a utility app for macOS. Originally developed as proprietary freeware by Nicholas Jitkoff of Blacktree, Inc., it is now an open-source project hosted on GitHub.

ANSI.SYS is a device driver in the DOS family of operating systems that provides extra console functions through ANSI escape sequences. It is partially based upon a subset of the text terminal control standard proposed by the ANSI X3L2 Technical Committee on Codes and Character Sets.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

<span class="mw-page-title-main">AutoKey</span>

AutoKey is a free, open-source scripting application for Linux.

<span class="mw-page-title-main">AutoIt</span>

AutoIt is a freeware programming language for Microsoft Windows. In its earliest release, it was primarily intended to create automation scripts for Microsoft Windows programs but has since grown to include enhancements in both programming language design and overall functionality.

<span class="mw-page-title-main">Tiling window manager</span> Window manager with non-overlapping frames

In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach of coordinate-based stacking of overlapping objects (windows) that tries to fully emulate the desktop metaphor.

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 variables, if-then-else logic, loops and other functions.

<span class="mw-page-title-main">Gateway AnyKey</span> Programmable PC keyboard

The Gateway AnyKey is a programmable PC keyboard that was sold with desktop computers from the Gateway 2000 company roughly from 1990 to 1997. It was manufactured in at least five known versions and incarnations by Tucson, Arizona-based Maxi Switch, now a subsidiary of LiteOn Technology Corporation. The AnyKey is no longer manufactured, with the latest dated model available marked 1997. Maxi Switch, Gateway, and LiteOn currently do not offer any product labeled as or comparable to the AnyKey.

Automise is a commercial task automation tool for Windows. Developed by VSoft Technologies, Automise offers a graphical user interface for automating repetitive tasks through the creation of Automise projects. Automise includes a library of 390 built in actions which can be combined with point-and-click to develop automation projects. Automise automation projects can be run using the Automise IDE, Automise command line executable or the free run-time version called Automise Runner.

<span class="mw-page-title-main">Auto clicker</span> Program to automate clicking the mouse

An auto clicker is a type of software or macro that can be used to automate the clicking of a mouse on a computer screen element. Some clickers can be triggered to repeat recorded input.

<span class="mw-page-title-main">ZOC (software)</span>

ZOC is a popular computer-based terminal emulator and Telnet software client for the Microsoft Windows and Apple Macintosh macOS operating systems that supports telnet, modem, SSH 1 and 2, ISDN, serial, TAPI, Rlogin and other means of communication. Its terminal emulator supports Xterm emulation with full colors, meta-keys and local printing, VT102, VT220 and several types of ANSI as well as Wyse, TVI, TN3270, and Sun's CDE. It supports full keyboard remapping, scripting in REXX and other languages, and support for named pipes.

VisualCron is a job scheduler and automation tool for Windows.

<span class="mw-page-title-main">Sublime Text</span> Text editor

Sublime Text is a shareware text and source code editor available for Windows, macOS, and Linux. It natively supports many programming languages and markup languages. Users can customize it with themes and expand its functionality with plugins, typically community-built and maintained under free-software licenses. To facilitate plugins, Sublime Text features a Python API. The editor utilizes minimal interface and contains features for programmers including configurable syntax highlighting, code folding, search-and-replace supporting regular-expressions, terminal output window, and more. It is proprietary software, but a free evaluation version is available.

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 applications, by means of a visual programming language with support for variables, styled clipboards, functions and text tokens, if-then-else logic, loops and other functions.

<span class="mw-page-title-main">Nim (programming language)</span> Programming language

Nim is a general-purpose, multi-paradigm, statically typed, compiled high-level systems programming language, designed and developed by a team around Andreas Rumpf. Nim is designed to be "efficient, expressive, and elegant", supporting metaprogramming, functional, message passing, procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C, C++, Objective-C, and JavaScript, and supporting compiling to those same languages as intermediate representations.

References

  1. 1 2 "AutoHotkey Changelog for Years 2003-2004". Autohotkey.com. Archived from the original on 2011-11-04. Retrieved 2011-12-02.
  2. "Changes & New Features | AutoHotkey". www.autohotkey.com.
  3. "Lexikos/AutoHotkey_L". GitHub.
  4. "AutoHotkey Changes & New Features". autohotkey.com.
  5. "Software License". AutoHotkey. Retrieved 2022-06-08. GNU GENERAL PUBLIC LICENSE Version 2, June 1991
  6. Contact Erica Sadun: Comment (2005-08-19). "Ericasadun 2005 Life Hacker". Lifehacker.com. Retrieved 2011-12-02.
  7. "Quick Reference | AutoHotkey". www.autohotkey.com.
  8. "AutoHotkey Tutorial: Macro and Hotkey Creation". Autohotkey.com. Retrieved 2011-12-02.
  9. "Remapping Keys and Buttons". Autohotkey.com. Retrieved 2011-12-02.
  10. "Hotstrings and Auto-replace (similar to AutoText and AutoCorrect)". Autohotkey.com. 2005-01-09. Retrieved 2011-12-02.
  11. "Hotkeys, Hotstrings, and Remapping". Autohotkey.com. Retrieved 2018-05-23.
  12. "AutoHotkey Changes and New Features, v1.0.47 - June 19, 2007". Autohotkey.com. Retrieved 2011-12-02.
  13. "Author Chris Mallett's post on the AutoHotkey Forums". Autohotkey.com. Retrieved 2011-12-02.
  14. "An AutoIt / AutoHotkey nonfunctional comparison". Paperlined.org. Archived from the original on 2011-12-08. Retrieved 2011-12-02.
  15. "Author Chris Mallett's post on the AutoHotkey Forums". Autohotkey.com. Retrieved 2011-12-02.
  16. "Licensing Opinions - AutoIt Forums". Autoitscript.com. Retrieved 2011-12-02.
  17. "Forum post by Chris, announcing AutoHotkey_L now main platform". Autohotkey.com. Retrieved 2011-12-02.
  18. "Our History". The AutoHotkey Foundation. 2014-05-26. Retrieved 2016-07-23.
  19. "AutoHotekey.dll Module". github.io. Retrieved 2017-05-13.
  20. "Hotkeyit's AutoHotkey_H fork". GitHub.
  21. "Thqby's AutoHotkey_H fork". GitHub.
  22. "AutoHotkey_H subforum". AutoHotkey.com.
  23. "AutoHotkey v2". AutoHotkey.com. Retrieved 2021-07-28.
  24. "AutoHotkey v2.0-beta.1 - AutoHotkey Community". www.autohotkey.com. Retrieved 2022-01-11.
  25. "AutoHotkey v2.0-rc.1". AutoHotkey.com. Retrieved 2022-11-20.
  26. "AutoHotkey v2.0.0". AutoHotkey.com. Retrieved 2022-12-20.
  27. "AutoHotkey v2 Official Release Announcement". AutoHotkey.com.
  28. "End of Life: v1.1". AutoHotkey.com.
  29. ".NET Framework Interop - Scripts and Functions". AutoHotkey Community.
  30. "AHK + LUA Interop (stdlib), proof of concept - Scripts and Functions". AutoHotkey Community.
  31. "ahklisp: lisp on win32 with cffi, sbcl, and autohotkey - Scripts and Functions". AutoHotkey Community.
  32. "ahkecl : Embedded common lisp in ahk - Scripts and Functions". AutoHotkey Community.
  33. 1 2 "Machine code functions: Bit Wizardry - Scripts and Functions". AutoHotkey Community.
  34. "Embedded Windows Scripting (VBScript & JScript) and COM - Scripts and Functions". AutoHotkey Community.
  35. "function hooks - Suggestions". AutoHotkey Community.
  36. "COM Standard Library - Scripts and Functions". AutoHotkey Community.
  37. "LibCon - AutoHotkey Library For Console Support - Scripts and Functions". AutoHotkey Community.
  38. "LowLevel & dynamic code - Scripts and Functions". AutoHotkey Community.
  39. "Human Interface Device(HID) Support".
  40. "Automation IE7 Navigation and Scripting with Tabs - Scripts and Functions". AutoHotkey Community.
  41. ":: SmartGUI Creator :: - Scripts and Functions". AutoHotkey Community.
  42. "Sparrow: AHK WebServer w/ AHK in HTML support (sources incl) - Scripts and Functions". AutoHotkey Community.
  43. "[tool] WinEventHook Messages - Scripts and Functions". AutoHotkey Community.
  44. Research, Cybereason Nocturnus. "Fauxpersky: CredStealer malware written in AutoHotKey masquerades as Kaspersky Antivirus, spreading through infecting USB drives" . Retrieved 2018-03-29.