Association of Personal Computer User Groups

Arizona Alliance of Computer Clubs


The Fun of Creating Tools
An Introduction to AutoHotKey
by Hank Pearson

It's fun to create tools to simplify your computer tasks. You might find writing them is easier than thinking of what you want to automate.

No matter what I would pick as an example, I can hear you (or someone) say, "I don't need that. That task doesn't bother me. The example doesn't apply."

The task doesn't bother me either, but creativity is rewarding. This article contains examples, but it is not about specific examples. It's about the joy of writing your own tools.

Sure, you can buy almost any kind of software you can think of. And you can probably even find it free. But there is a special pleasure in making something yourself, no matter how simple.

Abbreviations and Misspelled Words

Let's say you run a company called Purple Mountain Majesty. You have to type that several times a day in various applications. So you write a command that allows you to abbreviate it pmm

::pmm::Purple Mountain Majesty

That's all there is to it! Now, every time you type pmm your script types Purple Mountain Majesty. You can put a bunch of these hotstring commands in your script file: commonly misspelled words, your name and address - anything that speeds up your typing. (One hotstring can work in all of your programs.)

Mouse Wheel on Keyboard

Do you find yourself reaching for the mouse several times a day to roll the wheel a little? You'd like that functionality on the keyboard? No problem. Here are your hotkey commands:

#Down::Send {WheelDown}
#Up::Send {WheelUp}

Now, when you hold down the Windows key (next to Alt) and press the Down or Up arrow, the mouse wheel rolls (effectively) without taking your hands off the keyboard.

Timestamp Email or Documents

In Notepad, you can press F5 to insert the time and date. How about a hotkey that timestamps any document or email message (in any program)? Here's how:

FormatTime, TimeString,
, h:mm tt ddd MMMM d, yyyy
Send %TimeString%

When you press Win+T (when you hold down the Windows key and press the T key), your script types something like
7:35 PM Tue January 9, 2007

Flexible Formatting

The hotstring top and bottom lines
say that when you hold down the Windows key (represented by #) and press t, do the following, and then return to normal processing.

FormatTime, TimeString,
says to format the date and time, and put the result in a string of characters called TimeString

You can format the date and/or time about any way you like. For example,
yyyyy-MM-dd dddd HH:mm
can produce
2007-01-09 Tuesday 19:35

Send %TimeString%
sends the contents of the string to the keyboard, as if typed

Pick a Language

What language is being used in these commands? AutoHotKey. AutoHotKey is free, it is easy, and it is powerful. See the online article

Plain English

Perhaps the hardest thing about using AutoHotKey or any other scripting language is getting started. Simply think what you want the script to do and write quick notes in plain English, something like this:

When I type pmm, I want the computer to type Purple Mountain Majesty. When I press Win+Down or Win+Up, I want the mouse wheel to roll. When I press Win+T, I want the computer to type the date and time.

That's called pseudocode but don't let the big word scare you. Write it any informal way you like. Just get the idea down as soon as you can, before you forget what you want. Then, if you like, chop the text into short lines if that makes it easier to understand. Yes, you could skip the pseudocode, but it will help you get started.

Not Just Hotkeys

Is AutoHotKey limited to hotkeys? Not at all. You can write GUIs (graphical user interfaces) if you like. But hotkeys are much simpler to write and faster to use.

Any Modifier Key

Are hotkeys limited to using the Windows key for the modifier or prefix key? No. Not only can you use the standard Ctrl, Alt, Shift, and Win keys - you can use any key as a modifier. So you could, for example, hold down the zero key on the numeric keypad and press the plus key to do whatever you specify. And you could still use those keys as usual.

Memory Aid

Do hotkeys turn you off because they are hard to remember? Write a command that pops up some notes:

#/::run C:\notes.txt

Then, as long as you can remember a single hotkey, you can easily get to your notes.

In the example, #/ is the Windows key and the slash is much like typing a question mark (on the same key), but using Win instead of Shift. (Do you like mnemonics? Use any key you like.)

Type some notes and save the file as notes.txt (or notes.doc if your .doc files load fast enough). (Name the file anything you like. Save it in any folder.)

You might as well add a few Windows shortcut keys to your file if you have a hard time remembering them. Here's a sample notes file:

Win+Slash notes.txt
pmm Purple Mountain Majesty
Win+Down   mouse wheel down
Win+Up mouse wheel up
Win+T timestamp
Alt+Tab switch applications
Win+D Desktop
Win+E Explorer

Yes, you could use real sticky notes (which get messy and fall off and get lost). Or you could download a sticky note program. But you wouldn't get the pleasure of writing it yourself.

Have Fun

Don't be afraid to brainstorm with your friends in the local computer user group. And don't forget to search the web for examples, tips, and forums. It's fun to create your own tools. The most important point: get started now. Make a note.

Related article:

AutoHotKey FAQ
An AutoHotKey Quick Reference
by Hank Pearson

Frequently Asked Questions such as where to get the free AutoHotKey and how to start using it. Includes several links to helpful resources.