The Windows command line has batch programming (see Windows Command Line Programming), and most other operating systems have their equivalents. Until recently, however, the Windows graphical user interface lacked a good value automation tool to allow users to script actions on the mouse, keyboard and interface.
That's not to say that such tools do not already exist. There are actually quite a number of windows automation and keyboard recorder tools, but they tend to be aimed at the professional market - like WinRunner from Mercury, for example.
These are quite out of reach for most people. Enter AutoHotKey - a macro recorder, automation tool, and scripted macro programming language all rolled into one easy download. The best part is that it can also be used to create Windows applications, distributable as executable applications. That qualifies it as a programming platform tool. Quite extraordinary.
AutoHotKey is, in principle, a scripting tool. In other words, it is a language that can be used to create macros that run with the sole purpose of manipulating the Windows operating system as if it were a user interacting with the keyboard and mouse. It ships with a great tool for making those macros - the AutoScriptWriter.
This makes it very easy to get started with AHK; all the user has to do is start up ASW, interact with the application in the usual manner, whilst recording the various mouse movements, clicks and keystrokes, and it will record every step. Then, a simple click to stop, save, and test the resulting AHK script. Magnificent.
This sequence can also be used to extend the script by recording additional snippets and then cutting and pasting them into the script at the appropriate point.
One gripe that users do have, however, is the complete lack of comments or blank lines in the scripts generated by ASW. This can make it hard to decode exactly what line does what, which is why some proficiency with the AHK scripting language is likely to be high on every user's priority list.
Once the script is created, it can then be assigned to any combination of keys - hence the name of the product - as long as the AHK service is running happily in the system tray. This makes it great for substituting shorthand keyboard clicks for real words, which a writer will value above all the other functionality that the program offers.
Extending the basic keyboard and mouse recorder concept, AHK has a great scripting language which is easier to understand than visual basic script, and has all the power of a real GUI programming language. All the usual support for loops, variables, and so forth are present and correct, as well as a collection of great functions for doing what AHK does best - messing with Windows.
The documentation is excellent, meaning that as long as the user has some basic programming (macro, or scripting) skills, they will find it easy to get started. Others might like to take a look at the Suite 101 programming tutorial - Computer Programming 101.
It would be far too large a task to try and get across the power offered by AHK in such a short space. Rest assured though, that with the easy programming language and GUI support through native functions (one function call to create a window with a progress bar inside!), it is possible to begin creating proper applications with ridiculous ease.
The simplest way to appreciate AHK is to get started using it.
AHK can be downloaded from the hotkey main site, along with the source code, and some great utilities that will be covered in a future article as the AHK system is expanded as a Win32 application development environment.