Autohotkey logoIt’s hard to believe that I’ve been using Autohotkey for ten years now. I discovered this wonderful, if somewhat geeky, program when the macro feature of Windows PowerPro stopped working on my computer back in 2005. Window Powerpro and its Windows 3.1 incarnation (Stlletto) had been a standard feature on my computer since the early 1990s. Since I really liked being able to type =meg and have it automatically expand into my gmail address (like the glossary feature in MS Word, but it works in in any Windows program) I soon realized I needed to find a replacement or revert to an older version of PowerPro. As I really did not want to revert to as less powerful version of Powerpro, I began to look around the web. The programs I first found were all commercial and, in my opinion, overpriced for what they did. Then I came across a mention of AutoHotKey on a message board, tried it, and never looked back.

AutoHotkey (AHK) is a free, open-source macro-creation and automation software for Windows, designed to allow users to easily automate repetitive tasks. It is driven by a somewhat idiosyncratic scripting language. Initially the Autohotkey scripting language was aimed at providing keyboard shortcuts (aka hotkeys), but over time it has evolved into a full-fledged scripting language.

It’s easy to use use Autohotkey to:

  • Automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or a macro recorder.
  • Remap keys and buttons on your keyboard, joystick, and mouse.
  • Create hotkeys for keyboard, joystick, and mouse. Essentially any key, button or combination can become a hotkey.
  • Expand abbreviations as you type them. For example, typing “btw” can automatically produce “by the way”.
  • Retrieve and change the clipboard’s contents.

Power users with programming skills can also:

  • Create custom data-entry forms, user interfaces and menu bars.
  • Automate data entry jobs by reading data from text files, XML, CSV, Excel and various database formats.
  • Read signals from hand-held remote controls via the WinLIRC client script.
  • Use the Component Object Model (COM).
  • Use array/associative array/OOP (Objects).
  • Use variadic functions.
  • Use DLL calls and Windows Messages.
  • Use Perl Compatible Regular Expressions (PCRE).
  • Compile Autohotkey scripts into an executable file that can be run on computers where AutoHotkey is not installed.
  • Use interactive debugging features and more.

Even if you lack programming skills, you can use some of the power scripts other Autohotkey users have created and posted on the Autohotkey web site.

As hotkeys, abbrevations, and scripts are all defined manually in text files, AutoHotKey is not the most user-friendly program out there. However, it is powerful and many of its everyday features like hotkeys and abbreviations are easy to define. For example, to configure the Windows key and N as a hotkey to launch Notepad, you would put this line in AutoHotKey’s config file:

#n::Run Notepad

If you would like to have “btw” expand into “by the way” when you type it, you would put this line in AutoHotKey’s config file:

::btw::by the way

My email address macro I mentioned early is coded as follows (with my real email address in place of “myemailmaddress”

:o:=meg::myemailaddress@gmail.com

I also have a long list of special characters so I can enter them by typing a short combination of characters. Here are a few of those entries:

:*?:a\'::á
:*?:a\``::à
:*?:a\^::â
:*?:a\~::ã
:*?:a\"::ä
:*?:a\*::å
:*?:a\e::æ

When I type “a\e”, for example, the “a\e” characters are replaced by “æ”. I have a lot of abbreviations and special characters set up, which saves a lot of time and effort every day. These macros even work in Linux software running in seamless mode on a VMware virtual machine on my system.

You can do far more complex things if you wish, especially if you don’t mind programming in a somewhat cryptic scripting language. But even if you never touch the scripting language, AutoHotKey is a useful tool. The ability to expand abbreviations in almost any Windows program alone makes this program worth the hassle of downloading and setting up. Here are some examples of useful scripts made available by users which show some of the power of Autohotkey’s scripting language:

Autohotkey is regularly updated and there is a large amount of support, including documentation, a tutorial for beginners, and an active forum. Whether your Windows automatic needs are limited to text substitution macros and hotkeys (either system-wide or limited to particular applications) or are far more complex, Autohotkey is a worthy and powerful Windows automation solution — and you can’t beat the price.

Rating: 5 Stars
Operating System: Windows XP or later (a few features may not work in XP)
License: Freeware (Open Source)
Price: Free
Version Reviewed: 1.1.22.09
Web Site: http://www.autohotkey.com/