I was helping someone in an AutoHotkey Facebook group this morning. The original request was how to have a HotString without requiring an ending character (tab, space, return, etc.). This is solved by simply putting an asterisk in between the first two colons.
However someone else mentioned a function they use to display a list of items and select from them. He didn’t share his function but I found something similar on the AutoHotkey forum. The example used the “Loop” and StringSplit commands. I decided to adapt it to use a for Loop and StrSplit function.
HotString to bring up a GUI with multiple text selections in AutoHotkey
Here’s the code to use a HotString to bring up a GUI with multiple text selections in AutoHotkey
#SingleInstance,Force ;make sure it only runs once
:*:jg::Joe@the-Automator.com ;This does solve initial request
:*:gg:: ;when I type gg bring up the menu (* means don't wait for an end charachter)
TextMenu("This is, cool¦But I like¦to do more¦with these¦But that's about`n`nit")
:*:ff:: ;when I type gg bring up the menu (* means don't wait for an end charachter)
TextMenu("this¦is from the ¦ff choice I typed¦Pretty cool¦huh")
for k, MenuItems in StrSplit(TextOptions,"¦") ;parse the data on the weird pipe charachter
Menu, MyMenu,Add,% MenuItems,Action ;Add each item to the Menu
Menu, MyMenu, Show ;Display the GUI and wait for action
Menu, MyMenu, DeleteAll ;Delete all the menu items
ClipboardBackup:=ClipboardAll ;backup clipboard
Clipboard:=A_ThisMenuItem ;Shove what was selected into the clipboard
Send, ^v ;paste the text
sleep, 50 ;Remember to sleep before restoring clipboard or it will fail
Clipboard:=ClipboardBackup ;Restore clipboard
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
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
Windows Autocorrect– Auto-replace an abbreviation with full text in any windows program
Years ago I realized I was frequently typing the same thing over and over. For a while I used autocorrect in Microsoft Word which was helpful but had limitations (one huge one is that it only worked in Word). AutoHotKey is a free scripting program that allows you to do an amazing amount of things; one of which is how to use Hotstrings to autocorrect text in any windows program via Hotstrings.
If you want to learn more about HotStrings, check out our Udemy course on HotStrings here
I have hundreds of Hotstrings which allow me to type a few letters and have them, automatically, replaced with the full word, sentence, paragraph, etc. Below is a simple example where I want to type my main website domain. Instead of typing the entire thing out I just type tac. which is quickly replaced with http://the-automator.com
The second example is one where I want to have line-breaks inserted (This is my template when starting a new AutoHotKey script.) I simply type tst. and the following “magically” appears in its place via windows autocorrect.
The below video outlines how I use hotstrings to reduce the amount of mundane work that I have to do. It is amazing how much time you can save once you get used to using them! Remember your Hotstrings (windows autocorrect) will work in any Windows program! Did I mention it was free? What more could you ask for?
Windows autocorrect is just one of many amazing things you can do with AutoHotKey however hotstrings is a great, easy, way to start down the path of automation and efficiency!