The links in nik's answer are a bit old but still pretty useful, although there have been quite a few advancements since then. There is IronAHK currently available which is a complete rewrite of AutoHotkey which works under .NET as well as Mono, allowing it to have cross-platform compatibility. It's also free and fully open source.