We had an amazing AutoHotkey Hero webinar the other day discussing 18 unique ways to Automate programs with AutoHotkey.
Normally our AHK Hero sessions are spent helping with their scripts / projects and discussing how they can create more stable, reliable tools.
In this webinar Isaias Baez and Joe Glines leaverage their combied 30 years of AutoHotkey experience to discuss 18 independent ways you can use AutoHotkey to connect to and automate Windows programs. Most people using AutoHotkey know about a handful of techniques and often end up seeing everything as a nail because all they have is a hammer. At the beginning of the webinar we discuss what should be considered when deciding on an approach. Make sure you grab the download below which has amazing links to each method!
hey everyone today we’re doing a special Autohotkey Hero session where we’re doing like a mini webinar for hero members I’m going to stream this to YouTube later but hero members only ones that can be attend and ask questions so and before we get started just because here’s the thing like the AHK HERO program I think is an amazing value and we have hero members here and I think a lot of the people that that especially attend our YouTube sessions the live sessions on Friday mornings should be hero
members right like they’re they’re Prime fit for it and it’s not that I’m trying to make the money it’s at the values there and so if some of the heroes want to chime in about what do you like about the program is it worth the money you’re spending yeah I mean it’s you know there’s very regular calls you know there’s a lot of experienced users so you know that’s where that’s where the value is right it’s we get to pick Isaiah’s brain and you know ask
questions in a group setting I think it’s great the other thing they did affords you is the ability to listen to approaches and topics and ways of doing things that you may not have thought of and maybe it isn’t going to be immediately useful to you but maybe in a week or a month or whatever you know you’ll be in somewhere looking at something and you’ll remember oh yeah this was discussing this command was discussed or in a different approach that may never have occurred to you so you do get a lot of exposure even if
you’re not actively doing something at the time yeah we talk a lot about how it’s really important to to listen to what other people are doing and you sometimes things jump in your head of like oh my God I never thought about doing that yeah right now the webinar today is especially about that we’re gonna show 18 ways to automate programs so probably a few of them you know but maybe there are others that you don’t know and even if you don’t learn them right now it might come on handy at other points well so let’s go ahead and
jump into it now I have a document here so this is some of the first things you need to think about before you pick on the approach you’re going to take right it’s just things that you need to no matter what you’re doing without a hotkey any anything you’re automating right is it one is the library I’m going to use an internal thing to add a hotkey or am I going to be relying on external libraries like for instance the UIA Library possibly or doing something we’re not covering by the way we have a
whole different webinar which I’ll put the link up here on nine different ways to automate browsers right because that is a whole different topic but it’s just a good example of with browser automation there are several different approaches using different libraries external libraries is it going to be something that could be run real are you going to be running your script on one computer or is it going to be on multiple computers if you know sometimes if I’m just running stuff on my computer I I take a much simpler quicker dirtier
approach than if it’s something I’m going to share with other people then something critical it’s one of our first questions we ask at the beginning and then the speed of how fast it’s going to run which often that doesn’t really matter overall but it does play into effective depending how many times you’re going to use it or how many people are going to be using the tools that’s something you do want to consider a big huge one right is the skill level of the person writing the automation is it and new to
automating you don’t want to be trying to do something very very Advanced right it makes it much more difficult another really big one which is this is what’s good because I actually did the video on this a couple years ago now I think of these 17 ways but the context has changed and a lot of the ways that we used to love they’re just getting older and most newer programs don’t have that infrastructure in order to automate them so if you know it’s really great if you can automate something but if that doesn’t apply to
the program you’re using it’s kind of useless right so there’s that approach another huge one is the number of examples of tutorials and how do you learn how to take that approach right which is one of the big things with UIA we’ll get into before UI was cool but there were no libraries really to use it and now there’s some really cool libraries with some good trainings we’ve done videos on and I’ve seen other channels do them and then the whole thing of AHK V1 versus AutoHotkey V2 which version of
Autohotkey are you going to be using can really have a huge effect of course of which approach you’re going to take right you see on the point that you mentioned reliability on one computer which is like things that you’re going to do for yourself another thing that is related to that is the fact if it is if this is a one-time thing so if I’m gonna go ahead and automate something just to get out because I have to do 50 clicks or whatever I just do it at one time I don’t care that he’s reliable because I’m not going
to use it a second time or a third time or whatever but it goes into the category of yeah is it just for you yeah is it just one time that you’re going to run it then yeah that might be another thing to take into consideration now for the webinar where we talk through the the scores that we gave it of course because we thankfully because of isaiahs and maestrius and other people that are working for me they’re experts right so and and theoretically we should all aspire to be experts because you just it you have more Tools
in your toolbox right you have more approaches and this and that so the ratings we’re going to give this are from us but depending on your skill level just so you need to take that into account of like well do I really want to learn how to do all these other things right but for us it’s the we’re going to assume because this is what we do for a living right we do this on multiple computers which more often than not it happens a lot where you think it’s just going to be yours but then you end up
sharing it with other people or they do and so we also take that context reliability over speed this isn’t speed like Hey I want to have a 3,000 line sleep it’s just how fast it’s going to work but we we don’t usually worry about that we worry about is going to be consistently accurate yeah so that’s where we put our our priorities there’s an expert doing as I said and then now we’re doing everything in V2 however sometimes there are some things that are just a V1 thing right so here
are the different approaches let me see if I can get a good there we go that’s decent yeah and here what I’ve done is is Ace and I beforehand had talked through and this is a the cheating way to do it is we’re going to go through each one of these these are some of the things to highlight the differences in V1 versus V2 and what you want to keep your eye on and stuff when you’re comparing the two but I’ll I’ll share the link to this document later and I’m going to go add a few more links for some of these new
libraries for v2 you know sending Mouse clicks and keystrokes kind of like we do with Automate My Task and other stuff we can do it a four or a seven and it’s kind of funny because nine out of ten times you almost never see we don’t talk about sending keystrokes right however there are this came up with a client is he is he on here I don’t see him right now Jeff we were doing stuff and he was trying to use UIA for automating something but he was automating a browser and it was quite complicated
well no it wasn’t a browser it wasn’t it was it was a normal program but the problem and it was really tough to navigate around and Isaiah was trying to explain to him yeah we don’t always go with UIA depending on what you’re doing because with actually with Connie in one of our tools we were having problems with both UIA and even ACC he’s been having other problems with it right those are external libraries that are I mean desk a lot is a friend to the channel right into us and we can help
him work on the library but it’s out of you know it’s it’s not is not native to Windows right right right well here’s the thing so where would I go ahead and use sending keystrokes specifically if I’m navigating so there’s some some locations where you can use the up and down arrows the tabs the enter key in the in one example the per one of the people that we were working with we couldn’t navigate easily with up and down arrows I think this is the problem that Corning is facing that his program
you cannot navigate with the arrows and hit enter to enter into a window so he has to click on them in that case we go with UIA because we can find the object and try to click on it but in other situations like Geoff what happened was that we couldn’t click easily so then at that point we switched in that situation just to sending a tab and then an enter and then an ALT n to open whatever it was it is easier the thing is it is reliable up to certain point the main issue with it is if while you’re sending the keystrokes you type
that’s going to affect what you’re doing if the window that you’re sending the window the keys to loses Focus that’s another problem so again it’s not 100 percent reliable that’s why we didn’t give it more than a seven out of ten but it is reliable and it is easy to understand and easy to use right it’s not anybody could go ahead and learn that one really really easy right yeah the other thing I would say is to keep in mind when you’re doing this and this has come up time and time again right and I mentioned a bit
earlier too when you start down a path with a given any one of these tactics the approach you’re taking usually like is this will be working on something and he picks let’s say using UIA right and he’s going on the path and he gets stuck on something this morning he doesn’t necessarily come to me to advice on how to use UIA but we’ll talk through something the the thing is his brain is down the path of UIA and when someone else comes into the conversation also they’ll be like well why don’t you
just send a keystroke or why didn’t you take a different approach entirely right yeah which is just for Coney right now yeah you’re having issues with that little control hey is there any other ways that you can toggle that control without UIA you can use UIA for anything else but can you hit enter and it works then just send enter right so just recently I was on the call with maestriath discussing something and then I said hey you know we’re having a problem with this other thing with our tool and he’s like well
in SQL you could do a recursive query and I’m like what so he offered up something that I wasn’t aware of in SQL that you could actually do in it just the point is we all have different knowledge bases and our experiences stuff so it really helps having a community having other people to talk to whether you use the Forum whether you use the hero group or whatever right have a place where you can talk to other people that have different backgrounds because it really helps now that with this code can you uh
refresh well so the scope in from V1 to V2 we recently I think yesterday we talked about scope and functions so where you’re referring to that type of scope well in the example when we were making the video for the the V2 intro to V2 and we added a hotkey and then it was just like sending Mount you know we were trying to send keystroke or Mouse clicks actually in the example and it was just a reminder scope in V2 is very very different than V1 yeah so just keep that in mind when you’re working with them so
especially when you’re sending clicks and those kind of things yeah getting a location and then sending a click there and stuff so it’s just something to keep in mind right now image search and pixel search those are the ones that we try to avoid as much as we can the reason for that is that they are really unreliable on others people’s computers and even your own even in your own computer an image when you take the screenshot might look a little bit differently than when you are using the program so if you took a
screenshot of a button with your mouse over it it might have a different color than when you put the mouse away so the pixel or image searches might not work as intended so it’s really unreliable we use it as a very very last resort we actually had a client that we were doing in automation for an older program and we couldn’t click we couldn’t use the keyboard we couldn’t use UIA we couldn’t do almost anything we had to use pixel search it is working but we know at some point he’s gonna say
oh it didn’t work in that other computer well yeah yeah we know that’s one of the issues about it yeah it’s it’s honestly like a last resort now unless which is this is where like with automate my task I have something very quick and simple to do just on my computer it’s a one-off thing I I might use it for that right like especially without my task because it makes it simple to to get your image you want to search and then write a quick Loop to program you know to click it or something makes it very very simple
um so for for a very quick simple one yeah one of the differences on view from V1 to V2 is that image search and pixel search the first parameters the X and Y locations are just variable names that you put in there in V2 you have to use an ampersand in front of those because those are variable references by ref and those variable references you already had it right yeah sorry the variable references is a thing that is near in V2 and those kind of functions that set a variable you have to put the variable references as I have
been talking about in other videos so send message and post message now I don’t know how many you guys here have actually used those well the irony as you probably all have you just didn’t realize it because Autohotkey uses them in the background they’ve wrapped it a lot a lot of the stuff that we do stuff with controls and other things you’re actually using that just don’t realize you’re using those but they’re crazy powerful they’re very fast they’re very accurate highly
reliable like they’re they’re amazing I would just trace it in a different way that’s the way how controls work win32 controls all of them work with sending and posting messages 99 of them so if you figure that one out if you learned those that’s the best way that you can automate some controls on Windows but the problem is it has a very steep learning curve because the way the things that you’re sending are structures the many times our structures and pointers to stuff we’re not used to
those so from our perspective as an expert that knows how to do that for me is a nine for you it might be a very low value one because you don’t want to spend the time understanding all what goes behind it but either way this is the most reliable fastest way of controlling many things now the shell hooks are kind of whenever you you think about a hook it’s just a notification think about it as a notification the shell which is for example the Explorer window when something happens it sends a notification and you can capture that
notification for example when a file changes Explorer might notify you that the file changed and you can connect to that notification and whenever it happens you can perform an action there’s a lot of interesting stuff that you can do with it again this is one of others that have very steep learning curve you have to understand the messages you have to know how to use them and so on they are really reliable that’s why we gave it a high score of 8 or something like that because if you’re connecting to hooks you’re doing the
best you can basically in the sense of reacting to stuff I’m going to add to that and say I’m going to slightly disagree with you not not because you’re wrong or they’re complex but there is a good function I believe it’s function library for working with them Jackie showed me in a podcast that we did so we have a good video on it it made it very simple to watch for a given window like if something happens and they’re lightning fast like they’re crazy faster that’s for sure and you can actually
enter if I correctly if I’m wrong you can intercept the thing and basically you take an action before like other things you know react to it so it’s it’s really mindless but that function library was you know it was I I followed the vid I’m like holy cow I actually understand what you’re saying like it’s not rocket science made it very simple someone did a good job wrapping it in a function library to make it simpler because you’re right it’s an advanced topic but there are ways someone’s
wrapped it where it’s not crazy hard to do in the like you said they’re they’re amazing I think for Now function is in V1 I think and after you get the hang of it yeah so it’s only V1 but after you get the hang of it you could do it in any of the two languages because the difference is not that much it’s just the fact if you have ever used the on message command is very similar it’s just you hook to a message and whenever that happens you call a function that’s it okay dll calls
they’re they’re unfortunately let’s just look at the I know from talking to you as the the V1 to V2 like he changed a lot of the stuff right the conversions things don’t have the same meaning there’s a few things that are easier but there’s another other parts that are really tricky so the other calls are great for automating Stuff that allows you to use Windows native functions and the yellow calls kind of like open the door for you to use those native functions but again if you don’t know what you’re
doing with dll calls they can be a really really tricky subject well and most examples you’ll find in the Forum and by the way we talked about it just the other day but the Forum the V2 now is like the dominant thing and there is a sub-thread for V1 questions but you know now you’re gonna have to go find the V1 stuff but those examples are all V1 and so there’s not that many examples for v2 my question too though is this is did the changes he make because I know a lot of the changes that they made to V2 were to make it more in
line with other programming languages so have you ever tried to use like a dll call from another language is it closer to that so let’s say I could go to stack Overflow maybe and see an example using a dll call is it going to be closer to that no no no the main differences between the alert calls have to do with the buy ref so any variable that will be set has to use the Ampersand for example other changes is just that you can pass buffers which is a concept that not many Autohotkey users have so that is
really tricky if you have ever used the varset capacity to kind of like set the size of a variable you don’t need to do that anymore you have to use a buffer and stuff like that so it is the change is more structural more than making it in line with other languages okay thank you now the next one which and this is a tough one because there’s X9 different of course because his and my skill levels are different clipboard is amazingly overall simple it’s it’s very handy I think it was like the ultimate Global variable right like
that’s exactly actually unless you’re just descalada who thought up of using the was it the title bar the title bar of the video yeah exactly yeah that was a fun interesting thing it’s great now we did see and by the way it’s called a underscore clipboard or actually can you use both in V2 who’s that right do you remember V2 is A_Clipboard in V1 you can use both at the same time okay right but but the the clipboard one is gone so you shouldn’t use Clipboard by itself now if you’re wondering how can I automate with
clipboard manipulation well the point is certain situations I use it for communicating between two programs so we were trying to automate some something in Chrome for example and we had an extension in there that did the automation but I did to do I wanted to do something without a hotkey that communicates with that extension there is no way to connect the two because Chrome is secured in many ways so for creating my automation I usually Resort it to clipboard sending the information through the clipboard between the two
programs to create the automation that I really needed so that’s the way how you would use Clipboard the problem is it is a global variable that any program can set so if you’re automating and you’re depending on the clipboard another program might change the clipboard unexpectedly and your program might behave weirdly you know so that’s that’s the gotcha on that one which is the reason why I told him that I told Joe hey let’s lower this core on that because even if you’re an expert and you
know what you’re doing things can happen unexpectedly and you it’s going to be really hard to troubleshoot a clipboard manipulation automation so now with controls which again they’re amazing right don’t get me wrong in AHK v2 they’ve broken them down slightly differently so they’re a little bit better organized I think it makes a lot of functions that is right but I have a lot of little functions for them yeah unfortunately most now here’s the thing if you’re this is the one of the
things like it depends if you’re actually trying to automate an older program that has the win32 controls it’s they’re amazing right most programs nowadays like what we’re looking at right now in Windows like this ribbon up here doesn’t have the standard win32 controls so we can’t I think some of the edit ones like this one might be if I still remember right like there’s a couple that are but most of them aren’t and so it’s more about the prevalence of tools that we’re trying to automate have
it this is getting the lower score it’s not that it’s not a great approach it’s that few words yeah yeah it was the best but sometimes people hire us to to work on older programs so it is still great it’s just more so you know a lot of people are automating newer programs and it’s just not something you can use for most of them right but the next one actually is a little bit more in use because even if the program has the newer controls they most of them have a menu a menu a system menu that is in line with win32 and then
you can use the menu select or winMenuSelectItem which is in V1 the name is really long it’s wind menuselectitem in V2 he said why do I have to type so much let’s just make it menu select so the name changed a little bit but it allows you to kind of like in one line select a sub item in a menu by just specifying the path that you want to reach so it is really good so if your program like for example this one here word I don’t think at the top it has a normal menu no but if you wanted to go
to home you know a line or whatever if it was sub menus you could do so in one line and that was and that was really good and it was really stable it was not something that yeah so for example here right these menus and sub menus and what correct me if I’m wrong is this my understanding of it isn’t that you’re sending this it’s not like sending alt F in there is a command that is tied to what this gets triggered what this triggers that is what you’re actually so each element has an ID kind of like a
pointer an ID and when you do the menu select whatever it is it gets the pointer to that thing and just call it directly so it is something that it is not about you know you will not see the menu open and navigate it’s not going to do that it’s actually going to call exactly the function that is in that Sub menu without even opening the menu which is why is is really stable it is really the the low score is because more and more programs are ditching the menu in favor of other controls so yeah but it’s
a really good one to have in your back pocket because sometimes it comes up and it’s like wow it’s available right use it and let’s use it and it’s very simple to program in by the way like it’s you can either use the indexes or the names of the menus so either one works and it’s really fast and accurate so yeah it’s a great approach I think everyone here we’ve we’ve seen this working with the ACC and UIA Library especially let me let me go ahead and reveal both because they’re they’re so related right
right but generally speaking though so the ACC was the windows accessibility Library which was really old and then the UIA approach circumvented it replaced it the the ACC is deprecated the UIA is the newer approach for it however again depending on the program you’re finding to control and automate you might have some issues yeah yeah so Connie right now is working in something that we tried to use UIA with but it had some issues we definitely couldn’t use the library but we used to ACC and he had made he has
made a lot of progress on it by clicking many things they the only problem with them so we do like them a lot we actually think they’re one of the better ways of approaching clicking on a GUI or getting values from a GUI very quickly you know what I would add to a disaster we didn’t mention it earlier because it because nothing else is like this the really cool thing about UIA is you can learn one approach and it will automate almost any program right so even though it’s much more complicated it doesn’t really
matter the program you’re connecting to for the most most it does matter obviously because we just mentioned that we had some problems with it but it can control more programs than any other approach we’re mentioning here just because the prevalence it’s in every program almost every program now let me and I don’t know if Connie is hearing but here’s the thing you see this button right here that it’s a fine button I’m marking it here on the top right that is the find Button as you can tell it’s not
simply a button is also a menu which probably has some items inside have some children so probably if you’re trying to access a child off that button what is going to happen is that probably the child does not exist unless you click on the small Arrow there so if you can click Joe on the little arrow there to the find you see this buttons here they don’t exist unless you click on the little thing so that’s what gets really tricky with UIA and ACC that they’re not really straightforward like even if you see the
button it didn’t create everything it’s just to save memory at some point so that makes it a little bit trickier because then that means that your approach has to click somewhere first before giving access to other parts of the program so to that brought up two things to say so it’s a really good point one was during the free call just yesterday morning we live stream on YouTube hopefully you guys watch that and someone mentioned when they minimize the GUI no ACC no longer UIA no longer works we’re like yeah that’s because you
basically destroy the windows and windows is saving memory and so that’s why it’s no longer there right the other one I’ve forgotten while you remember but the point is automating with UIA is stable that’s that’s the best it has that is really stable the only thing is that it’s tricky really tricky and it needs a lot of experience with programming so you have intuition about oh that button is not going to be there unless I click on it and I were my second point so which we also didn’t
discuss if you just categorize in general we think of two approaches there’s an API a programmatic way to do something then there’s the I’m going to imitate a human like the sending of the keystrokes and stuff that’s usually you’re you’re imitating a human unless you’re using control clicks and then it’s a little bit more like an API right well the UIA and ACC this is where it’s a little weird it’s in between you’re imitating a human but programmatically imitating a human if that makes any
sense so yeah you you can only do what’s in the GUI right right so with ap real apis usually there’s things that you can do whether there’s a GUI or not it doesn’t matter but with UIA programmatically interacting with the GUI which does come at a little bit of speed loss compared to a regular API that still is usually very fast right and highly reliable but just to keep that in mind which is what is Ace’s point was that’s why this menu doesn’t you have to click this first to bring this menu up with an API approach
you wouldn’t do that you could do something which is called the function directory which was like the menu select item there that’s really more of an API approach because you’re not triggering that menu to then go click the thing beneath it you’re programmatically hitting the target already without triggering the GUI right so that’s the difference sir and there’s nothing wrong with ACC compared to UIA it’s just that it’s deprecated and it’s been deprecated for a long time but the two libraries
the desk level has created they’re amazing and they’re still he said they’re out of alpha right yeah but that’s the thing it’s like you’re relying on someone else working on something and we pointed out an issue with one of the libraries and desclata looked at it and said yeah actually for this example he actually contacted Microsoft saying hey what’s going on with this thing anytime you’re relying on another Library it’s just you know hey if there’s something internal that
Autohotkey has directly instead of someone else’s you know implementation of it you’re kind of better off if you can use an internal API approach over using an external library right and just to remind you of the other point it’s not always only using one approach you’re using UIA whatever so it can happen in that these specific instance it’s better to send a keystroke or send a click a normal click which Connie had kind of like a loop and it was trying to double click on the item by doing a loop
sometimes it’s just better to get the position of the item and send click two and that is it it just clicks twice that’s it so at that point the methods all of this is not focus on one and use only that is hey know that there are different approaches and depending on the situation pick one over the other most of the times you will pick UIA for the whole program right but there are certain situations in which that’s not really the way to go just go and use something else that might be easier or might be you know working as
you need that’s it yeah the actually I’d added that the ACC and I believe creeper from as the UIA they often give you the coordinates the XY coordinates of what it is you’re inspecting and so if you can’t programmatically trigger it hey I can reliably without using OCR or some pixel images or image search yeah get that location and go send my my manual clip right which is it is kind of like you see how you can get the name or the value you can also get what is called the bounding rectangle and the bonding
rectangle is kind of like a square of the location where that control is at so yeah all right moving on the file now this actually part of it has to do with what is as much earlier about using the clipboard as a way to interact with with programs the file reading and object file object is kind of a similar thing if like sometimes you need to save data from other things then go read it and this and that we did I just want to mention here and it’s not a biggie but believe it’s the file open and file object right the file read and the
file object you can you used to have to use the code page right 65001 yeah yeah it was very well to those of us that are non-programmers it was very like what very geeky now you can put like utf-8 and it’ll set it that way so that’s just file read for if I read and file right you can do that okay now here’s the interesting thing as file read write fall in the same category as the clipboard most of the times I would prefer the file read write to the clipboard if the other program can read in the files
right so because that way I know that it is my file and no other program will touch that file because they don’t know about it so unless you have anything very specific that you have to do in the clipboard like for example setting the clipboard to HTML right so that you can paste HTML unless you don’t want to unless you really need that then I think usually if you need to share information between two programs just use a file read in lieu of clipboard sharing by the way I’m going to throw in a bonus one that we
didn’t an 18th approach because it’s kind of funny let me give you a quick background I’ll keep it short several years ago I had this list prepared and I asked Isaiah’s we had a call several years before that where I just got to meet him and then I asked him because I knew he was an expert I said hey he wasn’t working for me right I said hey I have these different approaches I’m just curious can you look at this list tell me if I’m missing anything right at the time I had the standard in out listed
and then we after actually from that call he started working for me like within the next day I think you went back I’d like to give my two weeks notice or like you know what it’s okay you can leave and so the next day he started working for me it was kind of wild because that wasn’t the plan anyway in generating this document we have add that state or not and we kept talking through it and going I can’t think of an example of how I would use that to automate a program however just the other day a couple
times that’s come up where we’re like you know like I’m automating ffmpeg and that’s one I need to get the various information for example you can read I think you can file read the input the the standard output so in the example with maestriath in studio he was running his scripts by using that as another input on like the object the shell object right execute AutoHotkey scripts without even creating a file it was right so there’s the bonus one not a lot of trading a lot of it maybe
somebody will get around to making some but it’s it’s it’s a complex topic yeah it’s it’s pretty cool that you can do that now as I mentioned earlier apis application programming interface right that is almost I’ll say the cream little creme right like it is it is the go-to if you can have if the program has an API which a lot of them do and they don’t we don’t realize it because we have a lot of hotkey right but oftentimes what were we talking about the other day is as we were helping
someone and I said oh there’s a commandlets sometimes it a PDF thing no and we use chargpt to try to get that right right I remember it was with shody with the power all right so it had some sort of its own API approach and we’re like hey you know maybe we can you know automate definitely I would definitely think a command line interface is a type of API is a programming approach for that program that you can call it from the command line with specific parameters and it just does whatever you asked to do so there’s a lot of programs
like for example most Microsoft programs have command line interfaces that you can send for example you want to open a Word document but convert it into something else you can open Word documents and then you put some parameters to change it so it when we are referring to programming specific apis I guess those also fall into that particular category you yeah and actually on that same call with shoddy we were talking about vote what was the name of his tool for the speech to yeah and it hears you and you know reacts to
what you say we were looking at the tool in itself takes the executable and then the word spoken as a parameter right and then and you automate off of it so it was doing that as well so obviously you know AutoHotkey it is amazingly easy to manipulate the registry now words of caution if you’re not a programmer you can kill your computer by if you mess with the registry right so it’s not something the funny stuff with it that then you will be wondering why the heck did I do that yeah you can’t boot and
yeah so back up your registry is that but it’s it’s super simple to find the paths and to update or to read it also to set things and it’s really just a text file so you have to understand how it’s structured and where to go the right Keys that’s another one chat GPT for another tool that we’re creating here it makes it really easy it’s pretty amazing all right so the status bar and this one again it it would have gotten the higher scores it’s just not as prevalent anymore compared
to what it used to be and it’s one of my first uses of Autohotkey I was using business objects and I could never tell when my query finished running it didn’t give me any real notification I’d have in the background but it didn’t make a noise didn’t flash didn’t do anything so I figured out how to read the status bar in the status bar it would say done but you know there was no notification so I just monitored that and then I would put up a big Flash and make it ding it was really easy but it’s a great way to to
be able to track a program if it has one now the status bar you can set values to it or you can get values to it but I think mostly in automation for other programs I think we’re we would use it mostly to gather information about the program really quickly which you know what there is which I think it falls on the controls you see the controls line that we were talking about for example you know that you can get the whole information out of a list view of any program so if it has a list you can get the whole thing it would be the same
with the status bar it falls into the same category of hey you can use the status bar control all the list views to gather information about the program that you’re automating without having to screen read or OCR or something like that it was one of my first real ahas that AutoHotkey is not just a super little library was with SPSS I just have this handy so I’m still going to pull it you can see you could easily detect what is selected you can detect all of the items in the list programmatically get
that you could even hide stuff and do stuff with controls and make them disabled or move them around and things like that was all crazy crazy powerful on those Aces point it’s just hey with the status bar whatever you’re programmatically getting that ripping it out doing what you want with it it’s not something that’s quirky and slow as long as it’s available it’s quite powerful you want to know what the user selected hey yeah just grab the information out of the list or so case in point back to the the thing
when I was using business objects I could select as many as I wanted to from a given list like I hear I can’t select more than one but I could select as many as I wanted to the problem was business objects only allowed you to do a query on 99 items and I’d be selecting and selecting and selecting I get past it but it never told me I was past it I didn’t know how far past it I was so I built the script so while I’m selecting and I would get to 99 it would tell me hey stop selecting you’re you’re maxed
out right and it saved me so much time but it’s just a silly thing but it was like wow that that really was was phenomenal for me right right okay COM objects who wants to guess what we rate this because it is it’s yeah we the reason why it’s not a 10 is you know it they’re a little Advanced and each com object is a little quite possibly a little different especially if you look at the Outlook object it’s it’s very expansive like it’s just wow it’s it’s it’s big a lot of time to invest
yeah yeah the way how I do it is that I just research what I want at that moment so I don’t learn the whole thing I just go ahead and say okay I’m going to use the COM object okay so I need to open think how do I open thing with a com object and I look for that oh and now how do I select this but then how do I select and I get that because I cannot read the whole object and get the whole information because it’s too much so I just learned it by parts that’s the only reason why we scored it just the title
over because for many people it doesn’t make sense to spend that much time on that on learning that if the only thing that you want to do is Select and make something bold well if that’s what you want just send Ctrl B because it’s going to bold your selected text so the trade-off between how useful it is for simple stuff and how good it is is too big I actually think I I love it for big projects for complicated projects but not for simple stuff yeah and yeah and that’s where I told Joe is too you know we put
together our objects course and he kept talking about classes obviously classes and I was really on classes and he kept bringing up com objects and I didn’t really get the connection and finally you know when you have a class all the methods and everything that’s what you have in your com object right and but I was telling these days I’ve been using com objects for years I never understood classes at all but in a com object it was just clear to me easier in the the syntax is easier to follow but
you can do crazy stuff with com objects without being a very Advanced programmer you don’t understand you have to understand classes because that’s basically handled for you you have to understand the you know getting a handle to it and connect to it but you can once you can look up the mail as Aus goes and looks on the msdn for the to understand and see what’s available I usually just go to stack Overflow and say how do I do this or it gives you an example right he’s reading all the you know advanced
they’re much more reliable and consistent having said that and honestly if it wasn’t for the oauth someday we’ll get our oauth figured out talk to where the handshake and have it standardized where everyone uses like at least at least have more than one use the same approach right it just seems like everyone makes up their own approach and you have to study and that takes me let’s say if I’m going to do a project and it’s going to take me 20 hours 15 of it will be figuring out the oauth
they’re like that’s the actual yeah the actual using of it is so simple it’s just a stupid oauth and that’s the authentication and stuff if they have oauth 1 available it’s usually really easy but that’s not as likely anymore it’s still prevalent but not as prevalent used to be you so you’re basically connecting the servers online and doing a query and returning usually almost always Json every once on XML or other structures as well even csvs you can but they’re amazing because if
you’re paying for given tools from a company they can have apis like even we did an example of the day with the translation to Google Translate or Google Maps or the YouTube API for extracting your subtitles I mean there’s so many things you can do with them they’re phenomenal and they’re really fast they’re very reliable and often free not always but usually free yeah all right the last one is just because it’s an interesting thing is sometimes you need to know information about your
computer and this WMI tasks it’s it’s amazing what data is available I mean is it actually is this you you talk to it I know you were talking earlier so this one is I I wish I knew more about it because I know the basics the basics is that the windows keeps kind of like a record a huge record of information about the computer almost anything you want to know think about it as the registry the registry keeps track of the state or settings of programs the win management instrumentation keeps track of the computer itself almost anything
you want to know about it is there now it is tricky not only because of the amount of information that is there it’s just how to get the information varies in certain situations you get structures you get certain weird things that are we are not used to but I do think again I I rate it lower just for the amount of time that it takes for you to learn the learning curve but when you’re automating stuff whenever you’re automating you very likely need information about many things on your computer especially the the data that
tells you about the current status of the computer and you could get that oh I need to automate printing I don’t know which printer is connected to my computer the Windows management instrumentation will tell you that right away how many monitors I have because I want to display or I want to move a window from a program from my main display to a different one well Windows management instrumentation tells you how many monitors where they are what are the sizes many other things that you can just query it give you values and then
you just do whatever you want so it is really useful in automating desktop applications the only thing is that it’s really a lot of information is a lot of things so yeah there’s a good example out there and I have it as a download so if you search the automator with there’s I’d say like 20 different scripts and each one of them gets different pieces now there’s this point there’s a lot more than what I have in the download right it’s and you can go investigate it but the ones I remember I think years and
years ago I asked a question in the Forum about getting unique and information about a given computer and through the wmi if I remember I was able to get the serial number from the motherboard exactly yes and it’s just the craziest stuff you can pull of all installed fonts or like just anything and everything you wanted to know about the computer like it’s it’s available that’s right I’m wondering if now I could I could get the current DPI scaling on this font Matrix from it to fix my programs
I could just grab that and let’s say what it is right hopefully that isn’t too overwhelming now let’s go ahead and open it up to more questions if anyone has on a specific thing of you know what you’re trying to do and do we wow you too much is that too much information yeah I think a lot of those things you guys knew about right so there’s a lot of little details that you guys knew about but there are some of them that I’m not really sure by the way so which ones do you which ones haven’t you ever heard about
I do think I overlooked the menu select item command in version one and I think I have something that that might help with so I’m gonna go or several things so I may well investigate that once I get an opportunity to go back to projects there’s a good Library out there there’s a couple playing with it but lexicos has one and it I told his ass we need to we need to update it because it’s so amazing it actually looks at the program for you and tells you all the options and he has it where you double click it
and it goes and triggers it so you can see very quickly if it’ll work but I told Isaias he should have it where you right click it and say write the syntax that will give me this the the V1 right exactly yeah just make it that much easier and don’t feel bad Noel because when Joe mentioned that to me I had been coding for 14 years and then he mentioned like wait here there’s this wind menu select and I was like what the heck are you talking about like what I didn’t know that yeah yeah well as I said before you know you
you learn something new if you pay attention and Avail yourself of you know the opportunity amen anybody else has any comments or questions yeah or we want to discuss using the certain one that you’ve tried and as a really quiet today what course should we use for com objects we do have one for Chrome objects on the automator that was objects in classes was it yeah yeah it’s it’s the classes the intro to classes or intro to objects right yeah and classes it the the caveat I want to say though is it doesn’t teach
you like Excel or word or Outlook it’s teaching you classes how to create your own coma objectives right basically right right okay and I have a ton of stuff on Excel and some on Outlook and a little bit on word and a little bit on PowerPoint videos the point is that it’s very different like if you’re going to use the mo by the way I’d say probably my guess is like 60 of Microsoft programs have a com object available at least the ones that most people use and and it’s phenomenal when it’s available even non and if you go to
calm the automator.com you’ll see a list of programs that I’ve outlined the more common programs that people use that have com objects so like even WinSCP is a program not by Microsoft but they have a com object SPSS has a com object so a lot of programs have common objects available to them but as we were saying earlier each one’s different what I would do is just Google stock for Google The Forum first and then stack Overflow would be the second one or chatbt which could probably give you the code nowadays to
to write it okay thank you one other question are you gonna is there a need to write or to produce new courses for v2 that you already have covered in V1 is there plans for that or should I just jump in with the V1 courses well we’re working on a intro to autohotkey nv2 there’s our you know V1 to V2 if you’re already a V1 user yeah we have one that helps you jump into V2 as you can imagine it’s going to take time to recreate our courses for V2 these things take you know a month or more to produce it’s not
like it’s a simple thing that’s a month of full-time work right for Isaias so it’s it’s not something we can just crank out we’re a small shop and we do client work and other stuff so yeah but it’s going to take time we are we are doing it so we are working with B2 in mind so soon we’re going to have a few things but yeah it’s still a work in progress basically completely understand answers my question I’ll go start with the V1 course well are you let me ask you this are you 100 new to autohotkey
or no I’ve been using Autohotkey for a long time but I’m not anywhere near you guys I’ve got elements in my scripts that I copied and pasted off the web I couldn’t I understand how they work but I couldn’t free type them fix it yeah exactly you know that kind of thing and then there’s things that I haven’t understood that I copy and paste like the I don’t know like calm or even the classes and all that kind of stuff that I need to take the courses on so I was wondering you know it was around the
corner I’d wait for the V2 version but if it’s not around the corner then I want to jump in on the V1 version and then just know that I have syntactical things not to observe necessarily in the V1 I’ve already got the V1 to V2 course okay so you know that’s very helpful and the converter which is very helpful so but I need the conceptual thing of the older course the good thing is the the objects the intro or do we call intermediate objects excuse me I think it was interesting because it’s a mid-level type thing
right but it’s still objects and classes are an advanced topic so that’s why it’s kind of it’s hard to summarize it clearly but in that course is actually talked about Maps em did you talk about fat air I don’t remember I don’t think no I did not talk about power Arrow but that one it didn’t come up and it was not needed for what we were doing yeah now the I would say do not buy the guise course because guise have changed so drastically compared to everything else guise are by far the biggest change
right with the V1 to V2 in the you look at them and they’re so different I would be like you know just wait for a V2 GUI’s course because I would feel criminal if you bought that course and then you learn it and then you look to go to V2 and you’re like oh my God it’s all they’re all really classes and objects right like it’s it’s so much to me cleaner and simpler you honestly could take the object’s course and then you could no gooeys far better than if you took our intro to GUIs course this is the
way I would look at it technically that’s right yeah well appreciate the guidance yeah I would love if I could clone his ass I would it’s we’re trying to balance creating new courses and you know still doing these live calls and and doing client work and everything else so yeah it’s tough no worries we were we were both very surprised that the V2 was officially launched in you know the amount of time it did yeah that was really fast that’s right I know you talk about the guy that doesn’t sleep
but I got you guys in that class too so thank you guys for being here I think that was an awesome call and whatever we need if you need if you had any questions just let us know in in the hero group and we’ll be more than happy to assist you yeah so again as a reminder for those who aren’t Heroes and watching this later we have a private telegram group that they can chime in at any time and ask questions and either we try to answer them or other hero members chime in and help answer people so it’s really
a fun collaborative group helping each other and so yeah we just have lots of fun and consider joining hope you enjoyed this chime in on questions if you have them I’ll have this as available as a download but let me get a little more update stuff into it but it’ll be available soon bye guys thanks everyone have a good weekend thanks
🤖Unlock the Power of ChatGPT3 API with AutoHotkey!🔥
How to use ChatGPT3 API with AutoHotkey: require different parameters for web and API calls to get desired results.
00:00 🤖 Using AutoHotkey with Chat GPT and Open AI requires different parameters for web and API calls.
We’re showing how to use AutoHotkey with Chat GPT and Open AI, and there are some important differences between the parameters used on the web version and the API calls.
01:37 🔑 Get an API token to submit input and output, based on character count.
You need an API token to submit input and output, and the formula for calculating tokens is based on characters.
02:47 🤔 N answers are returned per request, with a limit of 4,000 tokens.
There is a limit of 4,000 tokens per request and the number of answers it gives back is N.
03:26 🤔 Play with the API library to get the desired results, but be aware of the temperature’s effect.
Lowering the temperature between 0 and 1 allows for factual answers, while a higher temperature of 1 allows for more creative answers.
Play with the API library to get the desired results, but be aware of the odd behavior between temperature and something else.
05:09 🤔 ChatGPT can’t store history of its actions.
GPT cannot send two values at the same time, so there is no history of what it does.
06:08 🤔 The rules of making a TLDR are to keep the most important events and ideas, be concise, and start with an appropriate emoji.
Every prompt is independent and context must be manually coded into the input box.
07:19 💰 Paying for calls, but API should still work even when Chat GPT is busy and we’re separated from the free version.
We are paying money for every call and should be able to use the API even when chat GPT is bogged down and busy, and we are likely separated from the free version.
08:35 🔥 Get 50% off our new course to learn how to use ChatGPT3 API with AutoHotkey for easier tasks!
Check out our version 2 course on sale now for half off to learn how to use the amazing tool Chat GPT to make everything simpler.
How to use ChatGPT3 API with AutoHotkey
(3) 🤖Unlock the Power of ChatGPT3 API with AutoHotkey!🔥 – YouTube
(00:00) hey everyone it’s Joe and azaleas here from the automator today we got a really fun topic we’re blending Auto hotkey and also using it with chat GPT and open AI uh in this example we’re going to show you and also give you a link to get the r code for using the open ai’s API calls so this is simply you know browser call is technically an API call but this is using the web service API call and there’s some really important things to realize about it so make sure you stick around and watch the whole thing because
(00:28) there’s some gotchas at the end that we want to make sure you understand yeah that’s right and so let me show you real quick what I’ve got here so if we go ahead and type give me five words here we should get an output from chat gbt with the with this list of parameters and I think this is something that we might want to mention a little bit these parameters here are not the same as when you are in chat ai.
(01:08) com so you might get some answers from chat GPT that are not the same that you would get if you are on the web version of it so you will have to play a little bit with those guys on their website um on the documentation they really mentioned what temperature means uh what top P it is what was what is that on the end so I’m just gonna give you a very high level overview about them the maximum tokens has to do with the length of the answer and what you give it and you have to be very careful with that one because
(01:48) um as this is leveraging your token your change GPT token you might get charged if you use too many tokens right so I would rather have it in lower values if you don’t don’t want to get charged too much um but in certain situations if you want the thing to answer with 200 words you might need to bump up your maximum tokens here and let’s back up a step here just slightly so a you need to have your token you need to create an account you know and give it a credit card or something because there are cost costs
(02:24) involved unlike if there’s a browser with account the next one is once you’ve given it your token um I’m sorry you’re well it is your API token uh when you submit stuff and that’s where he’s saying there’s both the input and the output count against you yes what’s really crazy is the formula for calculating tokens it’s not like every certain characters yeah the good news is it’s actually so cheap right now at least like you you know it’s it’s you don’t really have to
(02:56) worry too much but I I still agree with what Jose is saying so you don’t want to put in a ten thousand and then suddenly realize later like hey wait a minute you know Where’d I get this bill but we’ve yet to have like any sort of a real bill that’s for real and they do have still a limit there’s 4 000 tokens per per request I think it is this is the limit that’s a kind of like a hard hard stop even if you don’t put a limit to yourself so um the N is the number of answers that it might give back right now this
(03:25) interface is just gonna display one of them so this is not really uh an option that is going to be too much flexibility because I only have one output here if I had several windows I could give you different answers right the temperature this is the one that is a little bit interesting because uh uh a 100 is kind of like like giving it freedom to be creative so it it it might come up with new stuff but sometimes you don’t want that sometimes you want it to be factual so you would lower the temperature I think
(03:59) that’s how it works and uh it is between zero and one so it’s 0.2 is a temperature of 0 of 20 and so on the same happens here with the top P so this is uh it’s just a top percent and from the answers that it generates is going to give you the top percentage and usually 0.
(04:24) 5 is okay if you want kind of like the most accurate answer it would be the top one you know the top ten you can do the top ten percent and so on so that you play with this to get the answers that you’re hoping for I wouldn’t use the stream here because that’s where it starts typing out the stuff I have it set up I but the problem the the point is I I let it here so that you know it is available as an option in the API library that we created so you take a look at it and you play a little bit with it and see what you can come up
(04:58) with you from memory there was something to me odd I don’t think they explained it very well if I remember correctly between the temperature and the what was the top p is that what you’re saying yes that yeah that yeah but not the other right exactly that’s what they said like do not change both at the same time but it is not you cannot send those two values I send them both at the same time in the code but they they they seem to only understand one of both so yeah in any case I think this is the one
(05:38) can we go back to the the GUI yes so here and let’s demonstrate it so um say please do this again please do this again now in chat GPT in the browser yeah um we would know what that would do right right but here he just answered sure because unfortunately and I have no idea why and maybe at some point we can figure out how there’s a better way to do it but there’s no history there’s no context they’re independent of each other unfortunately each input you are sending right now is independent of the previous
(06:16) one there is no context now there is a way on because if you take a look at the code I’m sending a um uh Json string with some information there is a way to set up the context in the Json string the problem is that I cannot set it up because for you to set up the context you need to get the previous um ID of the conversation and that’s the part that I haven’t really created yet but that is part of the the issue there is no context automatically you actually have to code it yourself that’s what happens so that’s something
(06:59) that you have to take into consideration when you’re using this every prompt you’re doing is an individual prompt and everything that you need as a context should be in the input box right there in the last really big gotcha which which we’re not 100 sure on when you did one test but we’re not 100 sure is theoretically to me and I know from what I’ve read too we’re paying money for every call it shouldn’t have a problem when the servers are really bogged down and busy you should be able to do this
(07:29) but one time when we went where we were using the browser and then we’re like oh it’s not running oh we’ll just use our ChatGPT3 API with AutoHotkey it also didn’t work so we’re not 100 sure if this will or won’t work when chat GPT is bogged down and busy right it probably means that we are probably separated from the free version somehow but sometimes there might be a thing with channel gbt that all of it is down so yeah that’s what I was thinking as well yeah I’m thinking that probably what we got was that we’re growing like
(08:07) crazy service was down for everybody but we are somehow separated from the free version that probably um we will not have some issues that are free person would have yeah so let us know what you think are you using chat GPT are you trying to use their API I’ll put a URL up with a lot of training on API calls which we have a lot of webinars and videos separate videos and stuff on them also this tool we’re giving you it is in version two so we did Just Launch our you know painlessly transition to V2 this is a great time to
(08:43) start learning V2 so uh in this code it’s in written in version two so you know you might want to consider our course I’ll put a URL up here it’s on sale right now for a half off so you might want to check it out but if you learned something here please like the video really helps us out we get a lot more views we’re the largest Auto hockey channel by far I noticed the other day we have over 1,400 videos and we push out two to three a week and um also don’t forget to like And subscribe because if you don’t subscribe you may
(09:12) miss out on some of our cool stuff that we’re doing later at some point we’ll you know go into this a bit more make this a little more robust to do some other stuff but ChatGPT3 API with AutoHotkey is just a crazy amazing tool that is really um making it so everything we do is so much simpler there you go that’s right thanks everyone cheers
A mother was talking to her son in the morning. Her son was saying he didn’t want to go to school. That nobody likes him, and that all the kids make fun of him. To which she responded “Well you have to go to school today, you’re not sick. You have no excuse. Besides you’re the principal! 🤣
While I find this joke hilarious, the point is we all have things we don’t want to do. Learning something new is “work” but typically well worth the payoff! I made our AutoHotkey courses to provide a clear path to learning AutoHotkey.
Working with something new can feel very uncomfortable! Our courses can help ease the pain and get you to an AutoHotkey Rockstar in no-time!
Now on with the show…
Avoid losing data when working on files in the cloud ☁
Years ago Maestrith and I realized that, when working under DropBox and using file append in a fast loop we could end up losing data because DropBox was locking the file. Thankfully this was very rare as you had to be really spamming your hard drive. Sadly Isaias and I experienced something similar the other day so we thought we’d document a “best practices” for when working with files that are being auto-synced to the cloud. With the FIleObect you can lock the file so other tools can’t take control of it. It’s more complex than FileAppend however it has other benefits as well. One being, if you’re working in a large file, you can automatically jump to specific coordinates in it.
Automating a game on a Discord Server with my Son
My son, Jon, is 15 and spends a ridiculous amount of time on his Xbox and Meta Quest. He’s also been getting into games on a Discord server so I mentioned we could automate some of what he’s doing. Granted, in this video I was taking the “worst” approach to automation by just sending keystrokes however I was trying to show my son just how easy it can be. Have y’all tried to get your kids into automation? Or been even braver and get your spouse❓
Creating a Responsive GUI
I was on a call with André from Brazil and he had an issue with a GUI that wasn’t updating / being responsive. Years ago I’d used a few scripts to help with this but I asked Isaias to help explain what is going on and how to create a responsive GUI in AutoHotkey. If you’d like a simple resizable edit control you can get the code here. If you’re new to GUIs, you might want to take our amazing GUIs are Easy course! The course is AMAZING!👏
Functional / Procedural vs. Object oriented languages
Not being a programmer I’m often “lost” when I read articles written for programmers. One topic that often comes up is a discussion between “Functional or Object Oriented”. I asked Isaias to help explain the difference between the two. Do you have a topic you’d like explained? Let us know⁉
Understanding Email severs, Protocol and Sending emails
I have a couple of different scripts I use for sending emails with AutoHotkey. While I understand there are specific settings to configure I never gave much thought to what was behind them. In this video we discuss many of these settings, what they mean and why they exist.
Discussing email servers, protocol and sending emails
Simple Arrays in 🅰utoHotkey
Years ago I made this video to help explain how to work with arrays in AutoHotkey. Arrays are super useful to a programmer and understanding how to access them is really beneficial to you! I do go deeper into Arrays in the Intermediate AHK course.
How to work with Simple Arrays in AutoHotKey | It’s easier than you’d think!
🔥UI Automation🔥- The most amazing thing for AHK since sliced bread! 🍞
In case you missed them we’ve done two videos on using Microsoft’s UIA technology. This is a giant step forward for using AutoHotkey to automate programs
Intro video discussing the new Forum post and how to get Inspect.exe from Microsoft
How to easily automate nearly any program with the UI Automation API
Second video walking through how to connect to elements that don’t have a name
Automating a program where your element doesn’t have a name with UI Automation and AutoHotkey
Triple P.S. a customer reached out a while back. He was in the Intermediate AutoHotkey course but weren’t sure if they were ready for the Intermediate Objects course. I mentioned the Intermediate Objects course does cover basics of Objects but the Objects course goes way, way beyond that. The dilemma was that the Objects course was on sale for ½ off but he wasn’t ready for it yet. I told him not to “sweat it” and to go ahead and finish-up the Intermediate AHK course. If/when he wanted to buy the Objects course I’d create a coupon to allow him to buy it at the sale price. Well today he said he was ready to move forward so I created a coupon dropping the price from $99 to 💲49. Since I was there I decided to create a few extra for y’all. I saw he used the 1st coupon but there are 3 still available. If you’re on the fence about buying it, now is a great time… The coupon code is: “cd50PERCENT” and needs to be used during checkout.
June 16, 2022
The more I collaborate with people, the more I realize just how helpful & powerful it is! I’ve been saying this for a long time but ya’ll need an AHK coding buddy! And not just for debugging purposes, being able to bounce ideas off each other is a huge win for everyone involved. Google is very helpful however it only helps you go down a specific “rabbit hole”. When we talk with others, they provide ideas outside our own which can be invaluable!
So find someone you can bounce ideas off of. They don’t have to be a programmer (but it would help if they were). The main point is to have someone you have both regular chats with and can go to when you’re trying to decide on a new direction or stuck debugging something. Trust me, it will be worth it!
Now on with the show…
🆕Object Oriented Course
Hopefully you’ve taken advantage of our sale price (ends 6/18)on the Intermediate Objects course. Object Oriented Programming sounds “scary” to non-programmers however, in reality, it actually simplifies your code.
We just released this video discussing Inheritance which is one benefit of OOP. Inheritance can help you design better structured/organized code. It’s not an overly complex topic but would be impossible without classes.
🆚Code & GIT
Do you work with others? Do you release versions of your code? If either of the previous statements are true, you really should take a serious look at VS code. In this video Isaias talks with Spawnova about the many benefits of using VS code. If you’re new to VS code, you can check out this webinar we did on it.
Uploading files and clicking buttons with Rufaydium
Have you played with Rufaydium yet? In this video Xeo786 shows us how we can upload files in Chrome using Rufaydium with AutoHotkey. Automating browsers is an amazing skillset to have. If you’re new to Web Scraping you can check out this AutoHotkey webinar where we discuss the basics.
Stop losing your $hit 🙄
Technology can be an amazing help! My wife is constantly forgetting where she put her: keys, phone, purse,🧠, etc. A Bluetooth tracker can be a great way to find what’s missing! Currently these TileMate trackers (affiliate link) are on sale for 💲16.99. Not exactly cheap but they make a great gift! They’re also a great “insurance plan” to put in something you think might get stolen or go missing. Don’t forget Father’s day is just around the corner…
Want more time than the free hour? Have content that you can’t have on YouTube? Consider joining the 🦸♀️AHK Hero club! Members receive big discounts to courses, consultations, tutoring, done for you project work, etc.
They also have access to exclusive & pre-released content and a 2nd “office hours” session which isn’t on YouTube.
We’re launching a membershipplan called AHK Heroes that will give you discounts to each of these and includes 1 hour of “Office hours” that won’t be streamed to YouTube. Office hours will be a time for people to ask questions & get help. Not quite 1-1, as other members may be there, however the content won’t be shared to the public. We’ll do our best to get your question answered during the hour!
Being an AHK Hero member will also give you deeperdiscounts to our courses (both on Udemy and on the-Automator.com) Very soon we will have the Intermediate Objects course available which is the gateway to Object Oriented Programming.
Now on with the show…
Auto detect which version of AutoHotkey to use…
In the free-Friday call last week someone asked if V2 had an installer. In this video Isaias and I discuss a V2 Installer which also has a tool that will automatically detect the version your script should be launched with. Pretty cool stuff if you’re dabbling with Version 2. Now you can have both V1 and V2 installed, use the same extension, and AutoHotkey will determine which version to launch your script with! Very, very cool!
Shell Hooks are Amazing!
The other day Isaias and I were working on a project where we needed to detect when a given window was active. I mentioned Shell hooks were a great tool to use as, in this video Jackie showed how easy it was to use them in a script. They’re an amazingly fast⚡ and a super powerful tool to have in your AHK Toolbox!
Testimonial for the-Automator 🙏
Given you’re reading this, I think it’s safe to say that, in some way or form, you’re getting helped by what we do. I was wondering if you could take a minute to help me. I love hearing how people have used what we’ve taught and how we’ve helped them. Can you spare a couple of minutes to complete this short form? I’ll be using the feedback on my website, as testimonials, and will print them up for me to look at and remind me why I do what I do. Thank you in advance!
Dynamic Context sensitive HotStrings
I often refer to HotStrings as the “Hidden-Gem” of AutoHotkey. In this video Isaias shows how to create Dynamic HotStrings that are context sensitive. This is helpful when you have a GUI that you don’t want to reload the script.
I was trying to automate Davinci Resolve and was discussing various approaches with Isaias. I decided to hit record so we could talk through what we might be able to do. Many people have commented that, even though they don’t use Davinci Resolve, the video was helpful in understanding the process. Hope you enjoy it!
In this video I speak with Nicolás out of Mexico. He has a background in IT but also has a side-business in Real Estate. In this video he shows how he’s automated much of his mundane work with AutoHotkey
🤣 A spot of Humor
Ever see someone “call” a computer on an old rotary phone? My favorite part was, when the guy is dialing, he says it’s “extremely simple” to connect to the other computer. This is so freakin awesome!
Quick Access Popup news
Last week Jean Lalonde, author of Quick Access Popup, showed me a “Hidden Gem” 💎in Quick Access Popup. The alternative menu is very helpful for those of us that are QAP Power-users! Check it out, it’s a great way to speed-up something you use a lot!
🗣️ 💭 Quotable quotes
Whatever Your Mind Can Conceive and Believe, It Can Achieve. — Napoleon Hill
Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time. — Thomas Edison
You can observe a lot by just watching — Yogi Berra
Allow people to blossom or fail on their own. This takes ungodly patience, but it’s the only way it works. — John Carlton
Here’s the #️⃣1 thing you need to wake up and realize. YOU define your future! The more clear your goals, the more likely you are to hit them. I’m not talking about the lofty goals “when I grow up I want to be president”, I’m talking about realistic short-term and long-term goals.
For short-term goals I like to use sticky-pads and prioritize my items based on rank-order. I find it really helpful to think about them the night before, so my subconscious works on them in my sleep!💤
Furthermore, the more committed you are to your goals, the more likely you are to achieve them! One way you can “tell yourself” you are committed to them is by telling your friends, family, mentors. I say this with a word of caution though as there are some “negative” people out there that will try and dissuade you of your goals. Be thoughtful in who you share your goals with and only share them with people that, you think
Do you have any goals written down? I highly recommend you write them down, organize and prioritize them.
When you have long-term goals, make sure you block time during the week so make progress on them as well. For instance, if you’re wanting to get better with AutoHotkey, block 2-3 hours a week to learn AutoHotkey. By blocking your time, you’re telling yourself this is “IMPORTANT TO ME‼”
On a closing note, let me ask you this %name%. What is more important to you than investing in yourself?
Now on with the show…
Walking through the process of automating a tool
The other day I was editing a video with Davinci Resolve and wanted to automate switching between X and Y coordinates. I jumped on a Zoom call with Isaias to discuss different approaches and we played around with the ACC Library as well as other approaches. We didn’t come up with an amazing solution, but we got a start on it. Just thought you might like to see the process…
Changes in Versions of 🅰️utoHotkey (Vanilla to AHK_L)
Isaias and I were discussing the major changes to AutoHotkey and I had a real insight as to how Object Oriented Programming (OOP) really streamlines your code making it more intuitive, clearer, and better organized. I’ve been using COM objects for years now but, until this video, I didn’t realize it was Objects & Classes that really allowed for the code to be so-much clearer! BTW we’re very close to launching the Intermediate Objects course!
Demonstrating the power of VS Code
We were on a call with Spawnova and Isaias was demonstrating how powerful VS code was (especially with it’s GIT integration). If you program with other people (or release versions of your scripts), VS Code is amazing! If not, I recommend AHK Studio if you’re an Intermediate level. If you’re beginning to program, it’s awfully hard to go wrong with SciTE4AutoHotkey! I discuss the differences of editors in this video and if you’d like a simple tool to easily switch your default AutoHotkey editor you can grab AHK EditSwap
Functional / Procedural versus Object Oriented Programming languages
Not being a programmer, I often find it hard to understand nuances discussing topics comparing languages. I was chatting with a friend about using Classes verse functions and we, somehow, got on the topic of Functional vs. Object oriented languages. I remember reading something about it years ago but asked Isaias to give me a refresher…
Dynamic, context sensitive, HotStrings
During the Free live help a few weeks back someone asked about using Dynamic HotStrings. We ran into a hang-up during the call but circled-back in this video to show how they can be created (in a weird way).
Spawnova’s Fast Image / Pixel Scanning class
I don’t know if you saw the video I did with Spawnova discussing his class but thought I’d link directly to his video showing how to use it. So cool that you can find images that are behind other images!
In this call I speak with Jesús Prieto out of Madrid Spain. Jesús joined us on many webinars and had used AutoHotkey to for translation work. He’s worked with C but shifted to AutoHotkey because it is so much easier and more intuitive. Like my son, his son also plays with Scratch from MIT.
🤣 A spot of Humor
Someone put the Bee Gees music over North Korean marching. Freakin brilliant!
Quick Access Popup news
I asked Jean Lalonde, author of Quick Access Popup, what was a “Hidden gem” that I was missing out on. We jumped on a call and he showed me how to use Alternative Menus in QAP. If you’re not currently using Quick Access Popup, you’re missing out! It’s an enormous time saver!
🗣️ 💭 Quotable quotes
What you plant now, you will harvest later. — Og Mandino
Put systems in place that will allow ordinary people to do extraordinary things — Joe Glines
A nickel ain’t worth a dime anymore — Yogi Berra
Wake up. 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