• Become a Power user Intro to AutoHotkey Intermediate AutoHotkey Intermediate Objects GUIs are Easy w/AutoHotkey Painlessly switch from V1 to V2

March 2022 AutoHotkey Newsletter

AutoHotkey Newsletter

March 17th AutoHotkey Newsletter

Howdy %Name%,

Are you crushing it? Have you learned what AutoHotkey can do and, like me, just blown away?

I just realized that I hadn’t shared this video on YouTube (it’s from our Intermediate AHK Udemy course). For those of you new to AutoHotkey, it’s a great, high-level overview of what you can do with 🅰️utoHotkey 💪. If you’re not new, I’d love to know what you think I should have mentioned in it.

Why you should learn AutoHotkey: What can AHK do?

AutoHotkey is an amazing tool. There’s so many ways you can use it to save you time⏰. There definitely is an investment to learn to code however it is worth every minute you spend!

BTW- The other day I borrowed a meme and adapted it to this. I think of AutoHotkey people as “doers” not people that sit around and talk forever about how to do things. What do you think?

Now on with the show…


Are you interested in attending the first AutoHotkey conference? I was talking to Thom Beech from TABNation during one of our Free Friday office hours and we decided it would be great to put something together for this summer. You can learn a bit about our plan here.

AHKCon this summer: the 1st AutoHotkey virtual convention!

The Lost files

A long time ago the AutoHotkey forum used AutoHotkey.net to store files. Unfortunately it was hacked and the community lost a lot of great resources. While much of it was gone, people put together a nice list of scripts that were lost. In case you’ve never seen it, I made a short video and uploaded them here. Please keep in mind, I didn’t test all of the scripts in here so “Buyer beware” 💀

The lost files: Huge archive of AutoHotkey files from AutoHotkey.net

mySQL / ODBC connection

Have you tried to work with a SQL database but needed to get your connection string? The trickiest part to it is that, once you configure the driver / string you don’t have to do it again (it’s a “one and done” setting). So it’s easy to forget how to do it. For that reason Isaias and I made ourselves a video to document where we were getting it from for the mySQL ODBC connection. BTW I have a SQL Playlist in case you’re wanting to learn more about AutoHotkey & SQL

Adding the ODBC connection string for mySQL for AutoHotkey

Producing AutoHotkey newsletter 📧

I have a popular playlist entitled What I automate with AutoHotkey where I document some amazing things I’ve done with AutoHotkey. I recently documented the creating of this newsletter.

Producing the AutoHotkey Newsletter

AutoHotkey Wordle with source code💡

I was watching this video by Spawnova and he was showing his example of hacking Wordle. Do you play wordle? You can get Shin’s Wordle source code here.

AutoHotKey - Wordle Game with Source

What you need to know about Version2️

A while back we had a great webinar on V2️. I asked Dimitri Geerts and Isaias Baez to join me in another discussion to better understand what to look out for in V2, some of the new features, and what is most likely to trip you up. There were some really interesting things mentioned at the very end of the video. Not trying to make you stick around for the full two hours but the last 15 minutes had some things that you’ll want to know!

Switching to AutoHotkey v2: What you need to know about Version 2 AHK

The-Automators’ Podcast

What we’re reading 📚

AutoHotkey GURU 👨‍🏫 Interview:

Back in 2018 I chatted with JoeDF regarding how he got into, and uses, AutoHotkey. At times there were bandwidth issues but it was still a great call!

Examples of AutoHotkey / AutoHotkey expert: joedf

Productivity tips ⚡️

Listen to music that doesn’t have lyrics (or the lyrics are in another language). Personally I’ll often throw on Zydeco music which is usually very up-beat and “feels” like it’s in another language.

A spot of Humor 🤣

01189998819991197253 is a tad harder than 867-5309‼️

Quotable quotes 🗣️ 💭

  • People who enjoy meetings should not be in charge of anything. — Thomas Sowell
  • Amateurs sit and wait for inspiration, the rest of us just get up and go to work. — Stephen King
  • Even Napoleon had his Watergate — Yogi Berra
  • Challenge your belief systems. It’s better to realize you’ve been wrong for years, than to stubbornly hold onto a delusion that holds you back. — John Carlton

Live AutoHotkey Support Tomorrow

Don’t forget on Friday’s you can get free AutoHotkey support on my YouTube channel. Or you can sign up for reminders and join the zoom room. 👍

Intro to AutoHotkey HotStrings with AutoHotkey Intermediate AutoHotkey GUIs are Easy with AutoHotkey Intro to DOS & AutoHotkey AutoHotkey FAQ AutoHotkey FAQ


Joe and staff

P.S. Special thanks to the following for purchasing multiple AutoHotkey Udemy courses this month!

March 10th AutoHotkey Newsletter

Howdy %Name%,

No matter where you live, it’s impossible to not feel the effects of gas prices & inflation!  Current estimates have the rate of inflation in the US between 6-10%.  That’s crazy high however, given what’s going on in the world with Ukraine / Russia, I think it’s just the beginning of sky-rocketing prices.  Why?  Because nearly everything is delivered by vehicles!  These gas price increases are going to be driving up the prices very soon!

So why am I bitching about it in the 🅰️🇺t🇴🇭🇴tk🇪🇾 🇳ewsletter?  Because I 💯% believe the best way you can get a raise 💵is to BE WORTH MORE!  One of the best ways to be worth more is to invest in yourself!  People that learn AutoHotkey:

  • Get work done faster
  • Are more productive
  • Produce fewer errors
  • Provide more consistent work / deliverables
  • Are less likely to quit

Of course employers LOVE all the above! As a direct result they try and reward them.  The #1 way of doing such is to 💰 pay them more!  So commit to yourself today to find ways to be worth more!

Learning AutoHotkey is just one of many ways to improve yourself!  Of course the best part of this is where’s the risk?  If your employer doesn’t increase you’re pay you’re STILL WORTH MORE!

In case you missed the video I did ranting about being worth more, you can see it here; it’s one of my personal favorites!

Want to get a raise? Be worth it!- Investing in yourself is critical to succeeding!

Now on with the show…

Calculating time savings

A few years back I created this spreadsheet 📈 to help calculate savings /earnings by automating programs.  Do you ever try and calculate this? Also, do you think I should create a version of the spreadsheet in AutoHotkey?

Calculating Time and Money savings from automating a process

Regular Expressions

I was amazed how many people that do some coding are not aware of Regular Expressions.   When I first became aware of them I thought they were neat but that I rarely had the need.  But the more programs I wrote, the more I realized parsing text is a very common task to have!  In this Intro to RegEx video I cover the basics.  You can see my RegEx playlist here.  I also highly recommend Jack Dunning’s book on RegEx.  I bought it years ago and it really helped me learn them quickly and easily.

RegEx-Intro to Regular Expressions in AutoHotkey | pattern matching is easy

AutoHotkey Commands verse Functions

Speaking of parsing text, the other day I released a video showing both the Command StringSplit and the function StrSplit().  It’s one of the things that often confuses people new to AutoHotkey so I talk through both and why I prefer functions over commands.

AutoHotkey example Command vs Function on String Split

MS Word Macro recorder and COM

I’ve recently made a few videos demonstrating using AHK & COM to automate MS Word.   In this video I didn’t have an example to borrow from so I showed how I used the built-in Word VBA macro recorder to generate the VBA code and then adapt it to AutoHotkey COM code.   COM is an amazing way to, programmatically, connect to and automate Word!

How to use MS Word macro recorder to write AutoHotkey code

Using AutoHotkey to auto-generate numbers & delimiters

I’m not in love with how the script was implemented, but I love the idea and that he’s made a video showing how you can easily generate numbers parsed by a character.   I’d make some tweaks to it but very cool to see others pushing out AutoHotkey examples!

AutoHotkey - AHK - GUI Number Iteration Tool

Selecting and saving a file path in an ini file

Getting user feedback is a great way to make a script more flexible. Here Thom, from TAB Nation, shows how you can easily get user feedback and save in an ini file.

AutoHotkey INI 6 - Let The User Pick File Paths and Save It

The-Automators’ Podcast

What we’re reading 📚

AutoHotkey GURU 👨‍🏫 Interview: Ryan W.

In this AutoHotkey Expert interview I talk with a master Marketing guru that uses AutoHotkey among many other tools to automate his work.  Ryan’s a  super-bright and innovative guy that readily picks up any technology to solve his need.

Examples of AutoHotkey / AutoHotkey expert: Ryan Wells

Productivity tips  ⚡️

Everybody has a time of the day that we’re “on fire”.  A time when our brains are just kickin-butts and takin names.  Interestingly we’re all different as to when that time is but, I’m willing to bet, you know when your time is!

The tip for this week is to make sure, during that window of time, you do the most tasking/ difficult work you have.  Don’t do things you can “do in your sleep”.  For me, the time is about 1 hour after I wake up.   In the early afternoon I typically cool-off and then I handle things like replying to emails, etc.

When is your “take no prisoner” time?

A spot of Humor 🤣

Priceless!  I can’t tell you how many times I’ve used that key phrase…

The IT crowd - Truest moment about tech support

Quick Access Popup news

I learned a bit last week regarding how to add a “close this menu” option to Quick Access Popup.  Very easy way to make sure you don’t end up with a hung window.  Note, you’ll only need this if you’ve created a hotkey to open a submenu (which I highly recommend)

Adding a

Quotable quotes 🗣️ 💭

  • Absorb what is useful, reject what is useless, add what is specifically your own. — Bruce Lee
  • It’s amazing how much you can accomplish when you don’t care who gets the credit — Joe Glines
  • Do the hard jobs first. Easy jobs will take care of themselves. — Dale Camegie
  • You better cut the pizza in four pieces because I’m not hungry enough to eat six — Yogi Berra
  • Say “sorry” and “I love you” often and without self-consciousness — John Carlton

Live AutoHotkey Support Tomorrow

Don’t forget on Friday’s you can get free AutoHotkey support on my YouTube channel.  Or you can sign up for reminders and join the zoom room.

Intro to AutoHotkey HotStrings with AutoHotkey Intermediate AutoHotkey GUIs are Easy with AutoHotkey Intro to DOS & AutoHotkey AutoHotkey FAQ AutoHotkey FAQ


Joe and staff

P.S.  Special thanks to the following for purchasing multiple AutoHotkey Udemy courses this month!

  • 3 Bonnie O.
  • 2 Greg S.
  • 2 Tom S.

March 3rd AutoHotkey Newsletter

Hi %Name%,

March is here and I’m looking forward to getting outside to take advantage of our new horseshoe pit and volleyball net.  😊

For the 🐎horseshoe pit I found a nice place that will get afternoon shade.  Unfortunately, the backstop for the first one got set up a bit off-angle which would put the other side a bit out in the Sun.  I could have left it but I knew, every time I’d be out there sweating, I’d be cursing myself for not doing it “right” the first time.  It reminds me why I learn to use API approaches (COM, Controls, Windows Messages) over Human approaches (Sending keystrokes or mouse clicks).  If you take a bit more time at the beginning you’ll be much happier with the results!  While API techniques are a bit more complex, they’re also much more reliable and faster than imitating a human.  If the overall concepts are confusing to you, RaptorX and I discuss it in this video.   Speaking of which, Isaias Baez (RaptorX) should be back starting next Monday!  😊

APIs compared to Human Interfaces: How do you use AutoHotkey?

You also might be interested in this video where I discuss 17 different techniques to automate programs with AutoHotkey.   The main point being, taking a little time to learn up front can really payout for the rest of your life!  Why not invest in yourself and make the rest of your life easier by learning AutoHotkey?

17 Ways to Automate Windows Programs | Learn all the approaches in AHK

Now on with the show…

What I’ve automated with AutoHotkey

The other day I was updating my AutoHotkey resources file that is in my Udemy Bonus Lectures and decided to document some of the process.  In the video I cover various things I do on a regular basis.  How I add tracking to the documents so I can tell what works (and what doesn’t).  I even show my MS Word script for search & replacing hyperlinks.

What I've automated with AutoHotkey: WordPress tracking, MS Word, more

Searching for Text across files 🔎

Are you sometimes looking for files with specific text in them?  Or want to search/replace text within multiple files?  GrepWin is a great FREE tool for doing just that!  I recorded a short video showing how easy it is to use .  I’ve used it for longer than I can remember and it’s saved my butt many times!

grepWin for Searching and Replacing Text within files: Must have tool!

API Calls, Fiddler, SMS Texting and more

I was talking with Denilson Padilla about using APIs, monitoring network traffic with Fiddler and other things.  Denilson is in Brazil and has a YouTube channel in Portuguese.  I think we’re going to have regular calls on Monday evening so look for more videos with us discussing various AutoHotkey things.   I’m considering letting others join the call (for a nominal fee).  If you’re interested in being a part of this, shoot me an email.

Discussing APIs, texting, and more with fellow AutoHotkey Youtuber

Automating Outlook emails

In our AHK Facebook group I’ve been seeing several questions about using AutoHotkey with Outlook.  I recently demonstrated how easy it is to get: Name, email, subject line, etc. but we also covered Outlook in this webinar which had several great examples.  Automating Outlook with COM is an amazing!

Outlook Email Object- Getting Name, email, Send date, etc.

The-Automators’ Podcast

What we’re reading 📚

AutoHotkey GURU 👨‍🏫 Interview:  Tank

Back in 2018 I chatted with Charlie Simmons / Tank (AutoHotkey forum admin).  Tank’s got a long background in automation and used to travel around implementing Automation Anywhere.  We discuss using the DOM (Document Object Model) can greatly improve your web scraping ability (and make your code more reliable). He also gives some insights to the pricing and negatives with Automation Anywhere.

Examples of AutoHotkey |AutoHotkey Experts: Charlie Simmons /Tank

A spot of Humor 🤣 – Look I’m Superman!

I was looking for an old video and stumbled upon this gem which I made ~25 years ago when I was going to college to work in TV production.  The class requirement was to create a PSA (Public Service Announcement) that was exactly 30 seconds long.  In the video you’ll see me jumping off a roof. I’d put a couch down below but it was really hard to force myself to jump (and not land on my legs).  Sorry about the quality, I honestly didn’t think I had any copies of it so I’m glad I found this one!

Unplanned Parenthood- PSA from 1995

Quick Access Popup news

I had a “hung window” in Quick Access Popup the other day and asked Jean how to avoid this.  He gave me a tip and I quickly added a “close this window” to my submenu.  Very quick tip to avoid it!  Check out the video here.

Adding a

Quotable quotes 🗣️ 💭

  • People who enjoy meetings should not be in charge of anything. — Thomas Sowell
  • I will always hire a lazy person to do a hard job, because they will always find an easy way to do it — Bill Gates
  • A nickel ain’t worth a dime anymore — Yogi Berra 🤣(with inflation these days it’s very true!)
  • Lead by example, not big talk. In fact, shut up until you’ve earned the right to talk by honing your chops. — John Carlton

Live AutoHotkey Support Tomorrow

Don’t forget on Friday’s you can get free AutoHotkey support on my YouTube channel.  Or you can sign up for reminders and join the zoom room.

Intro to AutoHotkey HotStrings with AutoHotkey Intermediate AutoHotkey GUIs are Easy with AutoHotkey Intro to DOS & AutoHotkey AutoHotkey FAQ AutoHotkey FAQ


Joe and staff

P.S. Special thanks to the following for purchasing multiple
AutoHotkey Udemy courses last month!

6 Peter E. 2 Marc P. 2 Ewelina W.
3 Sam B. 2 Malgorzata M. 2 Ewa N.
3 Carlos M. 2 Magdalena O. 2 Emilie H.
3 Łukasz G. 2 Magdalena F. 2 Doug B.
2 VCALD. 2 Maciej W. 2 Damian G.
2 Sylwia B. 2 Lidia D. 2 Claudia J.
2 Swen B. 2 Kosma W. 2 Charles O.
2 Sean M. 2 Kinga C. 2 Cezary K.
2 R. 2 Katarzyna U. 2 Cesar A.
2 Qun G. 2 Karolina S. 2 Bartosz B.
2 Przemysław M. 2 K. 2 B.
2 Piotr Pawel B. 2 Justyna K. 2 Annet S.
2 Paulina D. 2 Joanna R. 2 Anna C.
2 Natalia P. 2 J. 2 Anna B.
2 Monika B. 2 Izabela K. 2 Alicja C.
2 MateuszH. 2 Iwona S. 2 Aleksandra P.
2 Mateusz T. 2 Iwona P. 2 Agnieszka W.
2 Mateusz J. 2 G. 2 Abdulmalik A.

AutoHotkey Webinar: AutoHotkey Version 2 – What to look out for when switching to V2

In this webinar we explore some of the main differences in AutoHotkey version 2, Why you might adapt it, and a tool to help automate the adaption

Special thanks to Dimitri Geerts for leading the discussion, putting together the deck, and working on the converter tool!

Video Hour 1: High-level overview
Video Hour 2: Q&A:

  • Major differences withAHK Version 2
  • You can read up on the official listing of changes
  • v2.0 beta 1was released in July 2021 and future releases are expected to be backward-compatible!  If you want to learn more, check out the v2 forum posts:
  • Take a look at the tool Dimitri demonstrated to adapt V1 code to V2 here


Script Highlight:  RunWith: Use this function to control the bitness of your AutoHotkey script

Sign up for future webinars here

See past AutoHotkey webinars 

You can get the Deck Dimitri presented here, or just look through the below images.

1) All parameters are expressions, not text

2) Variables need to be declared

3) “All” commands are now also functions

4) Some functions now return objects

5) There is now a distinction between properties accessed with . and data (items, array or map elements) accessed with []

6) Hotkeys and non-autoreplace HotStrings are no longer labels; instead, they (automatically) define a function

7) All byRef variables need to have a “&” before

8) Function calls require a space or “(“. Use comma only between parameters

9) GUI and GUI controls are now objects


TLDR: The 62nd AutoHotkey webinar discussed the benefits and challenges of switching to version 2, which offers improved consistency and cleaner code, but may require code conversion and can be less forgiving for beginners.

1. 00:00 📢 The 62nd AutoHotkey webinar discussed podcast topics, demonstrated Quick Access Pop-up, and provided a code template for running AutoHotkey in a specific business with the Unicode version.
1.1 The 62nd AutoHotkey webinar had 112 registrants and participants were asked to ask questions in the chat instead of speaking due to the potential for confusion.
1.2 The speaker discussed various podcast topics including version two, increasing the likelihood of script running on multiple computers, and the pros and cons of subscription-based vs one-time fee sales.
1.3 The speaker shared their screen and demonstrated how to use Quick Access Pop-up with AutoHotkey in the 32-bit version.
1.4 The speaker provides a code template that can be downloaded to force AutoHotkey to run in a specific business with the Unicode version, which is a useful function that should be built into AutoHotkey.

2. 04:45 🚀 The new version of the cjson parser improves code consistency and speed, while the changes in autohotkey code may be less forgiving for beginners.
2.1 Geek dude’s new version of the cjson parser works in both 64-bit and 32-bit, and thanks to everyone who develops and runs the forum.
2.2 The speaker discussed the changes from version 1.1 to version 2 and provided examples of how to correctly convert code to avoid errors.
2.3 In the updated version, everything is a function and errors occur when a variable is not declared, resulting in better code and fewer commands.
2.4 The upgrade may improve consistency and speed, but benchmarking is needed to determine the extent of the improvements.
2.5 The changes in version two of autohotkey code are simpler and less arbitrary, but may be less forgiving and not as easy for beginners to learn.
2.6 The speaker thinks the new conversion process is great despite concerns, and is currently working on a converter that is improving but may have difficulty handling large changes.

3. 14:01 👨‍💻 Arrays, hotkeys, and objects behave differently in Autohotkey version 2, but it has improved consistency and nested functions.
3.1 Arrays behave differently in version one and version two, with brackets and points having different effects, and it’s important to understand these differences when working with arrays.
3.2 Fix hotkeys by adding brackets and use an ampersand before name to avoid errors.
3.3 Version 2 of the programming language requires a space instead of a comma for the first variable in commands, and the use of objects has been changed.
3.4 Autohotkey version 2 has improved consistency and nested functions, making it easier for editors to do their intellisense type stuff and allowing for special tools without interfering with the rest of the program.
3.5 Learning it was easy with just understanding the birth variables, and there were not many difficulties encountered.

4. 22:25 📝 The speaker discussed code conversion challenges and loop confusion, while also sharing their struggles with using Hit Up and making changes to improve their skills.
4.1 The speaker discussed adding an ampersand sign to the function declaration and clarified that loops are not functions.
4.2 The speaker created a converter to convert version one code to a new version, but loops as a function can be confusing and the converter is currently only for testing purposes.
4.3 The speaker discussed the challenges of converting code and the need to sometimes invent methods to achieve the same results, while acknowledging that there may be better ways to code and asking for a link to the converter.
4.4 The speaker struggled with using Hit Up, a coding script adopted from another person, and made changes to it before the original coder stopped helping, leading to the speaker working offline to improve their skills.

5. 28:24 👨‍💻 Switching to version two of AutoHotkey can avoid issues and the speaker is working on converting functions from version one to version two.
5.1 V2 began around 10-12 years ago and the error level variable in V2 produces the same result as the V1 goat.
5.2 Consider switching to version two to avoid the same issues Python faced when switching between versions two and three.
5.3 Many people still have thousands of Python 2 scripts written in legacy libraries and converting them to Python 3 can be a daunting task.
5.4 The speaker demonstrated how to run different versions of AutoHotkey using a small script that detects the version number in the first 20 lines of the file.
5.5 The speaker is working on converting functions from version one to version two, focusing on the most used ones, and believes that com objects should work the same regardless of the language used to connect to them.

6. 36:49 💻 Using AutoHotkey version 2 leads to cleaner and more consistent code, with a 64-bit installer for easier management of hotkeys and scripts.
6.1 Functions are preferred over commands in programming as they have a cleaner syntax and are easier to understand, and while the old way of dealing with double quotes in version one is no longer available in version two, single quotes can be used instead.
6.2 Using version two of the converter leads to more consistent and cleaner code in the long run.
6.3 When installing AutoHotkey version 2, it does not install version 1 and comes with a 64-bit installer, which allows for easier management of hotkeys and scripts.
6.4 Learning the syntax of a new coding language is important to be able to use the same rules in your code and make the transition easier.
6.5 Version one library for functions has two functions inside, and it is easy to transition without converting the whole code, but it is hard to differentiate between exchanges.
6.6 The speaker stumbled upon forum posts about hotkeys using vanilla and l versions while learning dot notation with auto hotkey.

7. 47:00 💻 AutoHotkey users should consider using separate sub-forums or tags to indicate the version being used, and a converter can help avoid problems when transitioning to version 2.
7.1 Use separate sub-forums or tags to indicate the version of AutoHotkey being used to avoid confusion, and consider using custom extensions for more interactive output.
7.2 Autohotkey version 2 has new functionality and changes that shouldn’t break version 1, but it may take a while for it to gain widespread popularity.
7.3 Language should be concise and consistent, although every language has its quirks.
7.4 A gradual move to version two would damage adoption and cause problems in the community, so a converter can be a great help for people to avoid that kind of mess.
7.5 Automating 80% of the work is helpful and efficient, as it saves time and effort.

8. 54:59 👨‍💻 It’s suggested to make a community-wide effort to switch to a new version of AutoHotkey to avoid supporting multiple languages, but it may be difficult due to the large amount of content that still works with the old version.
8.1 There are some improvements in AutoHotkey version 2, but there is no compelling reason for existing users to switch to it.
8.2 Users may not switch to AutoHotkey version 2 quickly as long as they can find examples of version 1 scripts in the community.
8.3 To avoid the challenge of supporting multiple languages, it is suggested that a community-wide effort should be made to switch to a new version as fast and hard as possible, although it may be difficult due to the large amount of content that still works with the old version.
8.4 The majority of code in the programming language Otaha is found in a select few places, such as Reddit and hockey forums, and efforts could be made to create a foolproof converter to update outdated code.
8.5 The speaker suggests using a tool to nudge developers to use version two and setting up rules to check for version one code in posts to reduce confusion and fragmentation in programming languages.
8.6 The speaker discusses the implementation of Lactico’s version of AutoHotkey and how it drove some people away, while also mentioning the debate between Lactico’s version and the previous version.

Summary for https://youtu.be/R-AJgevfZ3k by www.eightify.app