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

Why I’m Thankful: Happy Thanksgiving❗

Today I’m looking forward to an amazing Thanksgiving with my immediate family!

I know a lot of you are outside the US thus don’t celebrate Thanksgiving however it’s probably the one holiday that I think really should have global appeal.

Being thankful for what we have is  a great way to stay humble and happy.   Too many people have a sense of entitlement and feel they are “owed” more because they are being held-back.

I don’t talk much about what life was like for me growing up (as it isn’t really relevant to automation) however I can say that I was able to achieve great things in spite of the shitty life I had growing up.

Here are a  couple of very short articles I wrote when I was in an English class in JR. college.

These will give you a tiny glimpse into what I went through in Junior high & Highschool (grades 7-12)

You see, my mother was a full-blown alcoholic😵.   Pretty much the worst of the worse❗

As an example, one day my siblings and I were all sitting around seeing who had the best “mom kicked me out of the house” story.    I thought mine was pretty good when I told them I was 17 and a friend called me up when I was at work and told me my mom was putting my stuff on the front lawn.


My sister was at the front of the line when she said “I was 16 and mom through a bunch of my clothes in a garbage bag and drove, and my puppy, to a bus stop and kicked us out”  (You have to remember this was decades before cell phones existed.

Sadly this didn’t win either.

My brother topped it all off when he said “I don’t remember how old I was but I was in 2nd or 3rd grade and I was walking home and saw all my stuff on the front lawn because mom had kicked me out”.


Anyway, my main point for mention all of this is I’ve seen some incredibly dark times and it’s probably why I’m so optimistic and grateful for what I have.

In a way I could probably thank my mother for her problems as it lead me, indirectly, to AutoHotkey.  You see I learned as a young kid to be self-reliant.   AutoHotkey enables us to do so much more and we don’t have to rely on people that will, for one reason or another, drop the ball and not deliver on their promises to you.

Having been through such dark and painful times gave me perspective.   I’m Over the moon happy that I no longer have to deal with the unpredictability of my mother (not to mention a crap load of others in my family incapable of love)

What are you grateful for?

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

AutoHotkey Webinar- 6/2021 Helping Users- API calls, ACC library & more!

AutoHotkey webinarThis AutoHotkey webinar was pretty amazing!
Video Hour 1: Helping others: Snagit, ACC library, Controls
Video Hour 2: GUIs, PID verse hwn ID, & more

Script Highlight:  Fiddler Everywhere Ripper / API Syntax writer

We also discussed Webservice APIs.  Our AHK Webinar on APIs is a great place to start

You also might want to download our API Syntax writer

We discussed the ACC library in this ahk webinar and demonstrated its usage in this AHK Webinar

When we were working through how to best solve Snaggit issue, I mentioned the 17 ways to automate windows  as well as AutomateMyTask

56th AutoHotkey Webinar: Pulover’s Macro Creator by Rodolfo Batista

AutoHotkey webinarWe were fortunate enough to have Rodolfo Batista come to our 56th AutoHotkey webinar and talk through his amazing Pulover’s Macro Creator!

The first hour Rodolfo talked through it’s creation, usage and common users

The Second hour we dove a bit deeper into Pulover’s Macro Creator and some of his other tools.   The Listview class of his was a topic of this past webinar lead by Jean Lalonde (author of Quick Access Popup).  You can access Pulover’s (Rodolfo’s) Github here

This script gets ~3,000 Downloads per week!  And is an amazingly popular sub-thread on the AutoHotkey forum

The tool was first created in April of 2012.  This means for nearly 10 years Rodolfo has worked on this on his own time!  If you’ve ever benefited from using the tool, please consider donating to him.  I did as, when I was first learning AHK, I used his tool to help see what code was being generated.

You can also subscribe to Rodolfo’s YouTube Channel here.

Script Highlight: OSDTip() by SKAN.

AutoHotkey Announcements

17 ways to Automate with AutoHotkey   https://www.the-automator.com/WaysToAutomate

Automating with APIs vs. Human Interface  https://youtu.be/p-NlPtABtTA

AutoHotkey Podcasts

88How to use shell hooks with AHK

89- Automating texting with PushBullet

New AutoHotkey Podcast format!  “The Automator’s Podcast

90– What to do before you write one line of code