Sunday, July 23, 2006

AutoHotkey

If you like Slickrun you'll probably love AutoHotkey
AutoHotkey is, as Carl Franklin might say, "The coolest thing I've downloaded recently".

It's essentially exactly what it's name implies. It's a program that sits in background and waits for you to hit any of the 'hotkeys' that it recognises. The 'Hooks' that it uses to detect these hotkeys are global, which means that they will be detected no matter which program has the foreground at any given moment.

So Notepad, Word, Gmail, Blogger.... anything is fair game.

The key to this particular implementation is that the hotkeys are defined by you the user, via a small script ini file. (The default such file is AutoHotkey.ini which is a complete misnomer as the content is not laid out like a standard ini file at all.)

In this file you nominate the basic keystroke combination that you require and then follow this by the command or commands that you require of the hotkey.

A simple command might be

#n:: Run Notepad

(The # is a symbol which in this case means the Windows key. Hence in this case Windows-N will launch notepad)

But this is but a trifle to AutoHotkey.

More useful is to detect if you already have a copy of Notepad open

#n::
IfWinExist Untitled - Notepad
WinActivate
else
Run Notepad
return

Further the system is capable of triggering template expansions in response to 'hotstrings'.

For example...

::sig::
{
Find my blog @ http://www.rorybecker.blogspot.com
Find my plugins @ http://www.rorybecker.co.uk
}

....allows me to enter my signature into either gmail or any other email program or document simply by typing 'sig' and then hitting space.

Great stuff.

There is of course a lot more that it can do besides launch notepad.

I will now quote the introduction on it's homepage

AutoHotkey is a free, open-source utility for Windows. With it, you can:

* Automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or use the macro recorder.
* Create hotkeys for keyboard, joystick, and mouse. Virtually 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".
* Create custom data entry forms, user interfaces, and menu bars. See GUI for details.
* Remap keys and buttons on your keyboard, joystick, and mouse.
* Respond to signals from hand-held remote controls via the WinLIRC client script.
* Run existing AutoIt v2 scripts and enhance them with new capabilities.
* Convert any script into an EXE file that can be run on computers that don't have AutoHotkey installed.


A complete list of commands is available here and the main documentation here

**It should be noted that I do not feel that I would prefer to use this program over coderush itself. there are many things that coderush can do for which it requires prior understanding of the code within your editor and I do not feel that this is the case with AutoHotkey. (Coderush is simply the closest thing I know to this facility)**

Autohotkeys could be likened to Slickrun with the saving grace that it does not have a permanent on screen interface.

Oh yeah... did I mention that this software is both freeware and open source

Again ... Great stuff

2 comments:

Brandon said...

Argh! Just what I needed. Another utility program that I just have to have... :P

Anonymous said...

AutoHotkey is pretty powerful but for the hotstring feature you might want to give http://www.phraseexpress.com a shot. It is much easier to use and has some nice extras.

Kevin