What is AutoHotkey?

AutoHotkey is a powerful scripting language for Windows. It allows you to easily manipulate other programs, create custom hotkeys and “hotstrings”, interact with the user, read, create and manage files and a lot more.

With AutoHotkey, you can also use big parts of the Windows API, interact with Web applications, use COM and more.

With these both simple and advanced features, AutoHotkey is as well suitable for beginners as for advanced programmers that want to customize their environment or automate common tasks.

AutoHotkey was originally developed by Chris Mallett. Today, there are a lot of custom versions and additions, which we will cover in Chapter 1.

What can AutoHotkey do?

Everything. Seriously, no one has yet found a task that can’t be done with AutoHotkey in some way. Some of these ways are simple, some are not very elegant, some are rather obscure, however, they work.

What can’t AutoHotkey do?

There are just two things:

Both issues might be (partially) solved later by the IronAHK version.

When and why should I use AutoHotkey?

You should use AutoHotkey because it is easy to use and to learn, because it offers simple solutions, because it has advanced features, because it is a great and helpful language to learn.

In the beginnings, you should of course start with easy things. But you’re not limited to them: people write complex and large software in AutoHotkey. As an example, large parts of the recommended editor for AutoHotkey, Scite4AutoHotkey, are written in AutoHotkey.

You can use AutoHotkey for game scripts, for quick macros, for tasks that take hours, for deep system modifications, for automating other applications through their window or through other interfaces, and a lot more.


Note: This list and its order are not set in stone. Feel free to change it.

  1. What AutoHotkey version to choose?

  2. Coding Environment

  3. First steps

  4. A guide to the manual

  5. A guide to the AutoHotkey forums

  6. some basic things to understand

  7. Let’s start

  8. Documenting your code

  9. User-defined and builtin functions

  10. Into the web: downloading, HttpRequests, httpQuery() and more

  11. A bit of advanced stuff

  12. custom GUI controls

  13. COM

  14. OOP

  15. Libraries