Beginner Builder series 75% done! will probably never be finished. :(

Wednesday, July 8, 2009

Autohotkey: It will change your life. I kid you not.

Autohotkey is up there as one of the very top programs that has changed the way I use the computer. Besides constantly trying to expand my programming knowledge by writing software in AHK, it's also an EXTREMELY priceless tool that can can make nearly any job easier.

What is Autohotkey? AHK is meant primarily to be a Hotkey utility, an automation tool (hence the name). That means that you can set keys to auto-paste certain text, run a certain program, and the other usual tasks that a hotkey utility performs. But AHK is really more than that. AHK is an entire programming scripting language. This post may be utter gibberish to some people, so if you want to read about Autohotkey as a hotkey utility, read the text in red. If you want to read about it as a language, read the text in blue. Text in black can go for both. (This might not work for RSS feeds and such, so if that is the case for you, I suggest.....skimming? Or you can just come back here to FW.)

I don't know much about programming, I really don't. But I do know that there is a huge difference between AHK and other hotkey programs I've tried. In AHK, rather than set the hotkeys via a window, you have to write code to make it do what you want. This makes Autohotkey (1) alot more complicated, and also (2) alot more useful. Some people might be scared off when they're told they have to write their own code, but it's really not that hard.

-Documentation: AHK has AMAZING documentation, both on the internet, and in the forums, if you get stuck. You can also check out the "Scripts & Functions" section, to see if there is something you can draw from to add to your own script.

-Easy to learn: Again, my programming knowledge so far is 1 semester of Java and fiddling with Javascript and HTML in my spare time, but I've really learned alot in the time I've used AHK. It's also very easy to use, since commands are simple like "Msgbox, Hello Friends!" instead of "System.out.println("Hello Friends!");". (Ok, bad example, I know. But you get my point.) I would say that AHK is the best program to learn on, if you're doing it in your spare time, because it's easy, and you don't have to worry as much about syntax, but you still learn how to correctly code a program. Plus, it's free, and very easy to compile. Speaking of compiling...

-Compile to EXE: VERY VERY NICE. There are multiple compiling tools out there which allow you to make your AHK scrips into an EXE, meaning that it can be run on any computer, even one that does not have Autohotkey.

-Customibility: I feel like I have to say, Autohotkey is entirely different than other hotkey utilities because it can use any key you have (with a few exceptions...) and can make it do practically anything. You want Capslock to toggle mute? You got it. You want F11 to launch your five favorite programs 5 seconds apart from each other? No problem. It definitely stands far above the rest, because in others like HotkeyBind, you have to choose from a drop down list, meaning your options are limited. Autohotkey goes to infinity and beyond.

It's very hard to review an entire programming language, because it doesn't just do one thing. If you want to check out some really sweet, tiny apps all written in Autohotkey, go to Skrommel's 1 Hour Software on DonationCoder. The sources are all up for download, so you can look at it, and see how 500 lines of code can make one incredibly useful program. (On the topic of DonationCoder, that is the second best place to go for AHK help.)

Probably the best thing about AHK is that it is:
-Tiny: You don't need much, even though there's alot of stuff included in the download; definitely under 1mb. (Much better than Java's 100+mb...)
-Portable: Yes, it's amazing. AHK does not have to be installed, so it can go anywhere. However, if you do take it portably, that means that AHK's extension (.ahk) will not defaultly open with Autohotkey, unless you use a program like PEM.

I would also like to quickly recommend an editor built specifically for Autohotkey: SciTe4Autohotkey. I highly recommend it, since it has syntax highlighting, can compile on the fly, and is portable.

Again, learning some "mumbo jumbo code" may be intimidating, but if you can learn just enough to do simple tasks, it will change the way you use your computer. When faced with a problem or a desired effect, you'll think "I can write an Autohotkey script to do this".

*I did make the icon for this post (even if it was based on the programs original icon), so if you use it somewhere else, please let me know, and give credit where credit is due. Thanks!


  1. Thanks, I would like to know what you use it for though.

  2. Gage,
    I use it for a ton. I used to write batch files to do repetitive tasks and such, but they require an ugly console, and provide no gui, and are fairly limited (at least my understanding of them is). Autohotkey is alot easier to use, for someone who wants to write, run, and maybe compile an easy, quick, script.

    I also write programs in it (which I believe I mentioned). I am trying to teach myself C++, but the motivation isn't very strong. Autohotkey is really nice, because it's VERY easy to understand. :)

  3. Our company uses it to automate routine tasks performed through web-based control panels of our various vendors. Going on two years now. An absolute time-saver.