In this webinar we cover an Intro to AutoHotkey.
Video Hour 1: High-level overview: Hour 1
Video Hour 2: Q&A: Hour 2
Script Highlight: Minimize to tray– This is an “old” AutoHotkey script but is super-cool! When running you simply press the Windows Key & H and the active program will “disappear”. It works on multiple windows. Then, when you want them back, press Windows & U and the windows will be visible again.
Intro to AutoHotkey
- AutoHotkey is free, open-source, Windows scripting language
- Created in 2003 from Chris Mallet it was an off-shoot of AutoIt
- AHK is user-friendly for non-programmers but is also used by programmers as it “hooks” into Windows & windows programs very well
- The core language is very descriptive and typically isn’t too hard to grasp
- Scripts are easily “compiled” into an executable which can be easily shared
- You do not need to install AutoHotkey to run it. (It can be run from a thumb-drive)
What can AutoHotkey do?
You can automate virtually anything on a Windows computer! Here are some uses:
- HotStrings: think text expansion on your phone or spell-check in MS Word
- HotKeys: Launch programs with a click of a button
- Files & Folders: Manipulate, read, move, delete etc.
- Automate programs : Outlook, Word, Excel, SPSS, VLC, Adobe, etc.
- Connect to Windows API: Programmatically affect Windows & other programs
- Web Scrape: Reliably download data from webpages &/or manipulate /complete forms
- Web Service APIs: Many vendors allow you to query their services
- Create GUIs: Simplify interacting with scripts by creating a GUI to manipulate
- Regular Expressions: use pattern matching on text files to extract or re-arrange the text
- Audio & Image Manipulation: Screen clipping, OCR, extract audio, Video recording, etc.
- So much more!!!
AutoHotkey Resources
- AutoHotkey Help file (press F1 in most AHK Editors) and Website
- AutoHotkey Forum– Amazing resources with a ton of examples & helpful people
- StackOverflow– Lots of great examples here
- Reddit– Some examples and people that will help explain solutions
- Discord– Interact live with people
- Personal sites: the-Automator.com, jszapp.com, ComputerEdge
- YouTube: Joe Glines, CivReborn, ahk Tuts, aboutscript
- Jackie & Joe’s HotStrings Udemy course
Installation of AutoHotkey
Go here and download the current version of AutoHotkey https://www.autohotkey.com/download/
During installation, we recommend installing the Unicode 32-bit version of AutoHotkey
Installing a Default AutoHotkey Editor
AutoHotkey code is “plain text” and pretty easy to read
Having said that, using an editor / IDE, instead of notepad, is very helpful!
Below are links to the three most popular AHK editors. Are all equally good as are many others). For our demonstration we are going to use SciTE (pronounced ‘sight’)
- SciTE4AutoHotkey is a great editor for AutoHotkey. Here are a bunch of videos demonstrating how to Customize SciTE
- AutoHotkey Studio Great editor specific to AutoHotkey. Check out the demo in this webinar
- Notepad ++ Another great editor which is customized for working with AutoHotkey
Before Your First AutoHotkey Script
Before we start coding, here are some basics which will help you
- #SingleInstance, Force: Put in all scripts. This Forces 1 instance of the script
- The Green icon with white H in system tray shows you the script is running
- Every time you make changes to your script, you need to Reload / Launch it for the changes to take affect
- Frequent Modifier keys (for HotKeys) are: ^=Control #=Windows +=Shift !=Alt
- Frequent Special Characters (for HotStrings) are:#,!,+,; Wrap them with {}
- For a New Line, use `n, for a tab use `t
Your First AutoHotkey Script
Hotkey
;************Hotkeys******************** ; ^=Control #=Windows +=Shift !=Alt ^b::Run C:\Program Files\Mozilla Firefox\firefox.exe ;Launches FireFox ^n::run notepad.exe ;Launches Notepad ~^n::run notepad.exe ;launches Notepad w/o absorbing the HotKey
HotString
;*********HotString************ ::jg.::Joe Glines :o:jta.::Hello ,How are you? {left 14}
Copy & Paste to Excel
;********************Copy selected text, activiate Excel & Paste**************** ;***********Copy / Paste to other program ^b:: backup:=ClipboardAll ;create a backup of the clipboard Clipboard:="" ;clear the clipboard Send, ^c ;Send "Control C" to copy selected text ClipWait,1 ;waiting for clipboard to have data ;~ MsgBox % Clipboard ;Show the clipboard has data winactivate, ahk_exe EXCEL.EXE ;Activate Excel WinWaitActive, ahk_exe EXCEL.EXE ;Wait for Excel to be activated Send, ^v ;Send "Control V" to paste the data into Excel sleep, 100 ;add 1-10th of a second to wait Send, {down} ;send the down-arrow key to move cursor to cell below sleep, 100 ;wait 1-10th of a second winactivate, ahk_exe SciTE.exe ;Activate SciTE Clipboard:=backup ;restore clipboard return ;end this section
Troubleshooting & Debugging
- Watch our AutoHotkey webinar on Troubleshooting & Debugging (or join a future webinar and ask questions in the second hour)
- Work through our HotStrings Udemy course
- Is script running / Green icon with white H in system tray
- If Green H Icon, Restart script
- Double-click icon & look at: last lines run, Variables & their contents, Hotkeys & their methods, Key history
- Close all other scripts & programs & retry
- If still not working, start using msgbox to “walk through” the script
- Try using ListVars & ListLines
- Read documentation on specific command/function you’re having issue on. Search forum/StackOverflow for examples
- Try running your script as Admin
- Temporarily turn-off UAC (User Account Control)
- Is your issue after the Auto-Execute Section?
- If Context-sensitive, remove context sensitivity & run general
- Reboot the computer (hey, it’s Windows…)
- Search the AutoHotkey Forum, Stack Overflow for similar issues
- Is the problem consistent & repeatable?
- Does it happen on other computers?
- What, specifically, isn’t working? Break down the part that isn’t working into it’s-own script. Provide specific example to AHK Forum, StackOverflow, or friend after spending at least 30 minutes on it yourself. You can also check Discord for live feedback/support.
- For SciTE debugging, you can check out videos on this post