Choosing a Windows automation scripting language. AutoIt vs Autohotkey [closed]

Solution 1:

  • I think AutoHotkey's GUI implementation is easier to use like many of its commands.
  • AutoHotkey (no longer maintained) has 3 forks :
    • AutoHotkey v1.1.* (previously known as AutoHotkey_L) has COM, Unicode support, object-oriented -like syntax, arrays, and more.
    • AutoHotkeyCE works on Windows mobile PDA's and smartphones (unfinished, no longer maintained).
    • IronAHK, a .NET version of AutoHotkey (unfinished, no longer maintained).
  • AutoHotkey includes a DLL file that you can call from other programming languages (so does AutoIt).
  • AutoHotkey is open source, AutoIt is not.
  • You have to search the AutoHotkey site to put all tools together. AutoIt does better at packaging all in its initial download.

My vote is for AutoHotkey (AHK).

Solution 2:

I've used both very much.

AutoHotKey is very good at managing hotkeys and basic GUI automation. It's syntax is horrible and it's not meant for bigger applications.

AutoIt has almost every feature AutoHotKey has and much more. COM-automation support, arrays and a pretty nice UDF (User Defined Functions) library. It's harder to build complex hotkeys in AutoIt.

Solution 3:

I use both depending on the situation. AutoHotkey is nice for quick keystroke macros and AutoIt has a much broader range of automation functionality and user-defined functions (UDFs) allow a range of useful things such as XML and database interaction. When automation requires a lot of GUI interaction I use AutoIt.

Solution 4:

I used AutoIt before AutoHotkey was created (when it had a syntax inherited from BAT files). I don't have enough experience with current AutoIt to make a correct comparison. It has a quite regular syntax, while AutoHotkey's syntax (although greatly improved from the original style) seems odd. People having never coded before actually love this syntax!

I hesitated, read numerous comparisons, and finally chose AutoHotkey despite its syntax. Partly because of its superior hotkey management, partly because it was open source. The author was active (he stopped, but there are alternative branches now) and open to suggestions. I shown a prototype of regular expression support using a PCRE DLL. He integrated the concepts and pushed them beyond (regular expression support in window name detection for example).

Documentation is excellent, detailed and full of examples with a comprehensive index. The community is very active and helpful. The binary is compact and you can make a standalone EXE file with your scripts. It also has GUI support (good for quick simple dialog windows).

I won't say one is better, the choice is mostly a matter of taste, feeling and needs.