Transcripts
1. Welcome to the Class: If you're just
getting started in Automation Using
Keyboard Maestro, there's one thing that's
almost sure to trip you up. Your macros run faster than the apps you're trying
to automate with them. This means your macro is going to try to press
buttons that aren't there yet or choose menu
commands that hasn't loaded yet. In this class, we'll learn the single most
effective solution. Pauses, ranging
from simple timed pauses all the way to sophisticated
condition-based pauses. These little guys can
take your macros from. I hope it works too. I got this, Hey, I'm CK. And in the last few years I've created close to 400 automations that have saved me
hundreds of hours of work and increased my earnings. As a composer and music
industry professional. I'm passionate about showing
other Creative Pros, how they can benefit to. This is the second class in my series on Keyboard Maestro. And it's intended
for people who've already built a few
of their own macros. If you haven't yet, please complete the first-class. You'll find links to it all
over the place in this class. This class we'll build on
the first by giving you an in-depth look at all of Keyboard Maestro is
different Pause actions. By the end of this class, you'll know how to identify when and where your
macro needs to Pause, Choose, and use the best type of pause for every situation. Identify exactly
what to wait for, and use variables and calculations to make even
your simple macros smarter. We'll start our lessons with the simplest possible
pause type will build a demo macro that
incorporates that pause. Then we'll move on to progressively more
sophisticated pauses and will swap those in so you can see exactly how they work and
how they make are macro, smarter and more reliable? For your class project, you'll just make a macro that uses any of the types of
pause that we covered. Alright, that's enough
for me for now. Let's hurry up and Pause
2. Easy Breezy Class Project: Let's talk about your
project for the class. I'm giving you a ton of freedom and the requirements
are super simple. All I want you to do is build a macro that is
actually helpful to you in your real life or work and include at least
one kind of pause. That's it. Here's some
ideas to get you started. You could make a
macro that launches an application and then uses menu commands to perform
specific actions. Using pauses to guarantee
that the commands are available before your macro
tries to access them. You could make a
macro that opens a specific webpage
and waits for it to load before moving
on to the next step. Or if you're really
curious about the Found Image condition, I would be happy to help
you play around with that. Just get in touch
and we'll figure out a cool project for you to do using the Found
Image condition. It's a FUN one. And as always, if you
have any trouble at all, whether that's completing
the idea that you came up with or even coming up
with an idea to start. Just get in touch. I'm happy to help you. And it's my job to
help you succeed
3. The Simplest Pause of All: Pause: As we've talked about
in the class intro, sometimes your
automations will run faster than the software
you're trying to automate. And that causes problems. But we can fix this
by adding pauses at strategic places
in our automations or macros as they're called
In Keyboard Maestro. The simplest one is
just called Pause. And it does exactly
what you would think. It pauses for a specific length of time. Let's take a look. I'll use Command Control
a and just type Pause. And there it is, plus. You see it comes in with
a default value of 1.5 s, but we can change
that to anything from hundreds of a second all
the way up to hours. Let's see an example of
how this would help us. Let's create a macro that pastes some text into
a window for us. It'll give us several
opportunities to use some Pauses. Here's Logic Pro. This is the software that
I spend the most time in, in my work as a composer. But for any of you who
are designers, say, if you work for
multiple clients, I bet you have the same
dilemma that I do. Every one of your clients might have different delivery
specifications. That's certainly
the case for me. Would I do is Keyboard
Maestro to deal with this is pretty great. There's a notepad in Logic Pro that lets you take
notes about the project, as well as about each
track in the project. Every one of these can
have its own notes. So what I do is have
Keyboard Maestro Paste in the specifications for the
publisher that I specify. In that way, I have them here. I don't have to
go look for them. I don't have to guess and I know for sure that
they're accurate. So let's make a comment
that spells out what we need to do. Comment. Alright, here's
what we need to do. Because we're doing this from Keyboard Maestro
and I want to demonstrate it for you as opposed to running
it from logic. The first thing I have to do is actually switch over to logic. So activate logic. We need to open the notepad. We need to click
It's Edit button. We need to type our text. And then we need to
click the Done button. So that'll look like this. We need to open the notepad and it has a keyboard shortcut
as well as a Menu command. And I'll think I use the menu
command for stability sake, we need to click this Edit
button to enable editing. We need to enter our text and then we need to
click the Done button. Okay, That's it. So let's make this work. So first off, we're
going to activate logic. So I'll choose that
here and it's running, so it's in this
menu, that's great. Then we need to open the notepad and we're
gonna do that from the menu. So I'll just type menu. Great. And I mentioned this tip
and the quick-start class, but it's a good one. So I'll mention it again. Instead of having to choose logic and type in
this information, I can get it exactly right by using this feature right
over here, the menu, menu. And I simply go to Logic Pro. And Keyboard Maestro has laid out its entire menu
structure for me. So I'll go to View
and note pads. Now, I happen to know that logic has a
little bit of a bug. You might call it as much
of a Apple fan girls I am, I might have to call this a bug. It doesn't always show all of its menu commands to
Keyboard Maestro. And depending if it's been, if the menu has been shown yet, it might come up with
a different variation. So let's see what I mean. If I go to view. It actually says Show note
pads, not just notepad. So I'm gonna go back
to Keyboard Maestro. And sure enough, if I look here, view, now it says Show
note pads, so it updates. So just be on the lookout for a little idiosyncrasies in a software that
you use the most. And the second thing about
this is this command is more likely to work if
I first display the menu and then choose
the menu commands. So here's my little
workaround for that. I create the one that I need, the Select action that I need. I duplicate it. And in the first copy, I delete the specific
Menu command. This has the effect of simply
opening the menu quickly. And then that shows Keyboard Maestro the
commands that are available. I know that's a little
bit in-depth and fuzzy But you'll find this kind
of behavior in apps. It's good to know
how to deal with it. Alright, great. So now we've got
the Notepad open. We need to click
the Edit button. I'm going to shrink this and this and this to give us a little more
screen real estate. And alright, so button. There we are. Press a button and
it's called Edit. So I'll put that in there. Then we need to type our text. So insert text by typing. Here's publisher a
wants WAV files at 16 bit by 48 K,
just for example. And then the last
thing I need to do is click the Done button. And here is where I'll show you another idiosyncrasy in logic. Check this out. If I
go to the notepad, I click the Edit button and then it turns
into the done button. If I hover over this,
look what we see. Edit. So its name, the way it's
programmed is still edit. So that's the name
we need to use. And Keyboard Maestro, again, just word to the wise
to be on the lookout for little mitts like this in the software
that you use to. So we can just leave this
as Press Button, edit. Okay? So if I choose all of these guys and
right-click and select, try six actions, and
let's see what happens. Boom. Oh, oh, oh, ouch. Oh, wow, whoa. Okay. It did pretty much
all the wrong things. So the texts that it entered started issuing a
bunch of Keyboard commands. Spectacular fail there,
which is pretty funny. So we know now that we
have some work to do, we know that it successfully
activates Logic Pro. We know that it actually successfully
chose this menu command. But it's clicking
the Edit button where we get into trouble. So one of the more
important things that you need to do as part
of this process is identify where the problem
started happening and that's how you knew where to put the
Pause and we got this far. So let's say Command, Control a and Pause. It defaults to 1.5. I'm going to bump this up
to three just to be safe. We press the edit button. And I'm going to
put a pause here. And put a pause here. And that way it'll just
slow down that last portion of the macro and let us see
how everything is working. Maybe I'll reduce
this one down to, to, reduce this
one down to, okay. So again, click one and
Shift-click the first one. And we will try nine actions. Here we go. Click the Edit button, type some text, and
click the Done button. Perfect, just by adding
these simple pauses. Now, in practice, you
really want to make your pauses as short as
will successfully run. And here's why. It even says this in the
Keyboard Maestro documentation. If you make your Mac
sit around and wait, you don't know what
else is changing in other applications that
might be running and so forth. And so the overall state
of your Mac might be pretty different by the time you get to the end of
that long pause. So the best practice is
always gonna be to make these pauses shortage you can get away with as
short as you know, is gonna be reliable. 3 s. Honestly, that's a decent sized project that
I'm using for this example. But I think this one
we could take down to easily a half a second. And the same way right here. And let's see if that'll
work. I bet that it will. Yeah. Okay. Awesome. There we go.
4. Nerdy for a Sec... But Don't Worry!: Right now, we're going to take a tiny detour to show you that the simple Pause
action we use in the last lesson is actually capable of
being pretty smart. I'll show you what I mean. Here we are. So right here where we
put a specific number, we could actually put a
calculation or a variable. So instead of putting in three, I could actually put 1.5 plus 1.5 and Keyboard Maestro
would be okay with that. And that's kinda silly example. But just trust me, when I say that it opens up
all kinds of possibilities. Now that leads us to variables. Now you remember variables
maybe from algebra in school, or maybe you've
done your best to forget all about variables. And that's fine. I get it. But at their Simplest, variables are just nicknames for some important concepts or value that we need
to keep track of. The great everyday
example is the word home. I can tell you, I'm going home. And you know exactly what I mean without knowing my actual
physical address, right? And every time I
move houses home, the literal meaning of it changes because my
address changes right? When still I can say I'm going home and
you know what I mean? So it varies, its variable
and it's dynamic. It can change. But I can still just use
this nickname for it. And everybody is still
knows what I mean. Great, right? So imagine you're
a digital artist and you're creating a landscape. And you choose a particular green to be the
color of the grass. And it's some crazy hex
code like hashtag three, F, B17, E or something. Okay. And that's hard to remember. But if you just label it as grass green and that contains
that hex code for you. From then on, you can just say grass green and it fills the
non-information for you. And even later down the road, maybe you change your mind and you choose a
slightly darker green. Just update grass green
with the new hex code. And you're good to go. It ripples through
every word that you used the term grass
green, right? So that's what we mean
when we say it's dynamic, it will update for you. So this combination of
being meaningful and easy to remember and also being
dynamically updating. Those two things can work together really
powerfully for us. Let's go back to our macro
example and see how we can incorporate this new information to make our macro a
little bit smarter. So everywhere that we have a pause with a
specific value in it, we could use a variable
instead. To do that. First thing we need to do is
define our variables so that Keyboard Maestro knows what we mean when we use that nickname. So we wanna do that
right up at the top. I'll do a Command Control a to bring up our
search by name. And we want a variable. And we're going to use set
variable the calculation, rather than set
variable that text so that Keyboard Maestro knows we're working
with a number. I choose that and I'm gonna
name it Pause length. So Easy enough, that's going to refer to the
length of our pause. And I'll put a three here, okay? Now, once I've done that everywhere that
we've got a pause, I can use this
phrase, Pause length. Instead. Pause length, and Pause length and
Pause length. Okay? Here's what's cool. Because this field also
supports calculations. That means that we can get
to know how the macro is working and we can shorten
or lengthen this as needed. Maybe I determined that this one needs to
be a lot longer. I can put times two, and now it's four
instead of two in here. Maybe I want it to be shorter. I could put divided by two, and now it's one instead of two. Alright? So you can see how that works, how Pause length becomes this representation of the
length that we started with. And then we can tinker
with it as we go. Alright, to wrap up, I'm going to drop some best
practice knowledge on you about using variables
In Keyboard Maestro. It turns out there are
several different kinds of variables available to us. For example, there's
a password variable and that's particularly secure. But the two types that I use the most are local and global. Local only exists within the macro where you
define it and use it. And then once you're done, it just vanishes in a magic proof of smoke
never to be seen again. And that's great because it's not taking up
computing resources, hanging onto some piece of information that we
don't need anymore. Now, that also means we can't
share it between macros. But the thing is we can
use that to our advantage. A great example is the Pause length variable
that we just set up. Different macros
that we create are probably going to need
different Pause lengths. But Pause link is such a perfect and meaningful and
easy to remember name. Well, by making it local, that means we can reuse it in as many different
macros as we like. But it won't conflict. It won't be four here and argue with another
one where it's to. The other kind is global. And that means that
it persists or keeps on existing
between macros. This makes it perfect for static things like a URL
that you go to often, or a path on your computer or a
particular folder where you save or open files frequently. And it will persist even between restarts
of your computer. Alright, so with
that information, you know what we
need to do, right? We've gotta go back
to our example macro. Turn Pause length into
a local variable. It says easy as putting the
word local in the name. And I'll follow it
by two underscores. Now, everywhere we
use that variable, I need to update the name. It's here, and it's here, and it's here. And that's it. So now we'll use
it in this macro, and then it'll vanish. And we can reuse
the name again and again in as many
macros as we want, with no conflicts. Cool?
5. Smart Pauses: Pause Until: Now we're going to start looking at what I call smart Pauses. These are pauses that
are able to wait for a condition
that you specify. And then they know it's time to move on to the next action. When I say condition, I mean things like, is this menu commands available or has this external
drive been mountain yet? And Keyboard Maestro provides us a really long list of options. Let's take a look. I'll say new action. And I want to find Pause Until I'll double-click
this and add it. Then when I click
this green button, I get a list of all the options. So you can see, is an application running or
not as a button available, is there something
particular on the Clipboard? Is a Menu command available? Am I on a particular
Wi-Fi network? All these different options. And they're incredibly powerful because they make your macro smarter and more reliable
than a simple timed Pause. Now let's take a
look at a couple to give you an idea
of what's possible. First, let's look at
application condition. It lets you specify which
application, of course. So if I want to wait until the Finder is at the
front of my screen, or say is not at the
front of my screen. Is it running? Is
it not running? Is it hidden? Is it not hidden? And so on. Okay. And that's not all that fascinating,
I wouldn't say. But it is incredibly
useful and powerful. I mean, this is
kind of a bread and butter thing to be able
to do is wait until a particular application is at the front or has finished
launching completely. So this is a good
one to know about. Now let's look at one that's
a little bit more FUN. But also super useful. This one is Pause for a
Found Image condition. So what this means is to wait
until the screen contains this image and you load this image well by
just pasting into it. So you can do a screen
grab and paste into it, or drag an image into it just like you would
any other image, well, in any other application. And in fact, if you hit the
spacebar with a selected, it gives you a
preview of the image using Apple's quick view. Quick look. Alright. And of course, it has, does not contain,
contains uniquely, does not contain uniquely. So there's only one of them or there is more
than one of them. Alright? So you're always gonna get the opposites available in
all of these condition menus. So let's see what happens here. It says Pause Until I open
the file called 65 staying, which is my 1965 Mustang, which is right there. I love it. And then once it sees that I've
opened that image, it's going to display huge
text saying it the image now. So let's give this
a run. Shall we? I hit run. And you can see the Keyboard Maestro logo
in the menu bar is now flashing to indicate it's
waiting, it's waiting. So if I look for 65, staying and I find
it and I open it, pop, I see the image now. Okay, So that's kind
of a Faun example, but I'm sure you understand
how any graphical element, anything like a user interface
element on a webpage C, or in another piece of software. You can get to it this way. I would caution you though, that it can be finicky. I have several macros that
work on Google Sheets. Google recently
changed some things about its interface
and that broke my macros Until I just made new screen grabs and brought
them into my macros. And then everything
was fine again, just something to know about
a kind of save this one as a last resort of all
these different conditions, there are three that I
tend to use the most. And those are Pause Until a particular menu
item is available. Pause Until a particular
button is available, and Pause Until there's a
specific window in front. I think the reason
I end up using these three so much is that there are so fundamental
a Menu being available, a button being available, a front window being
in front, right? So that leads me to probably the most
important thing to take away from this
series of lessons Which is that your job to
set this up correctly, involves figuring out what that definitive thing or things that have to be true in order for you to successfully move on to
the next step in your macro. And I said thing or
things because you'll notice you still have
the green button. Meaning you can still
add more and more. And you can say all of
these need to be true. Any of them need to be true. None of them needs to be true. Falling in that same
theme of giving you, I'm the opposites, both ends of the spectrum of these various
different conditions. Let's use everything we've
learned to modify or demonstration macro and make it a lot smarter than
it is right now. So we have this pause for
0.3 s and this Pause per 4.3 s. I'm gonna go ahead
and disable those guys. And instead, I'm going
to put in Pause Until. So what do we need
to wait for here? We remember that
our macro made it as far as showing the notepad, but then we had to wait for that edit button to
become available. That's the key right there. We have to wait for
the Edit button. So it sounds like Pause
Until button is available. So I go here, I say Pause Until
it's already up. There we go. And I Choose button condition. And I just fill in the name of the button and it's
as easy as that. Okay, so now it's gonna
be smart enough to just hang out and chill until
that button is clickable. Awesome. Alright, so we can just copy that and paste
it right here. Okay, so now in both cases we're just waiting
for that edit button. You'll remember that
it's labeled done, but under the hood
it's called Edit. So this should work. Now. Let's check it out. Perfect. Alright, so see, that's now
immediately so much more reliable because it's not waiting for some
arbitrary amount of time. It's waiting for
the button it needs to be available and
then clicking it. So ultimately it's
probably gonna be faster and it's definitely
going to be more reliable. It's not going to break. If I load some humongous
project that moves more slowly. Alright, so that's
it for Pause Until
6. Smart Pauses: Press Button When Enabled: This lesson is super short, but it covers a really
useful bit of information. You'll remember that in
our demo macro so far, we've been using
the action called Press Button to
press the edit and then the done buttons in Logic Pro to put our text
into that notepad window. In before we try to
press the button, we've been using a pause to wait for the button
to become Enabled. As it turns out, the
Press Button action actually has a smart pause
feature built right into it. Wait for Enabled. We
can just choose that in the gear menu of the action
itself. Check it out. Alright, so here in our
macro, we activate logic. We choose the note
pads from the menu. In our very first version, we paused for a set
amount of time. Then we replaced that with
Pause Until condition and set it up to wait for the button labeled edit
to become Enabled. We can disable this guy. And for our Press Button, we can go over to the gear icon and choose
wait for Enabled button. Right now it has the X by it, which means it's not turned on. I'll click here. And now you'll see
that it is turned on. And also that the
yellow gear icon has gained a clock face. So that tells us that it's
going to wait for Enabled. In addition, the title of the action has changed to
add the phrase When Enabled. So it tells you really everything
that you need to know. We don't need this. We don't need this. And just to be safe, I'm actually going to do the same setting
on this guy down here to make sure there's no typing still going on
or anything like that. So just one more note. Normally in a macro that
requires me to switch to an application and
then immediately try to choose something
out of a Menu. I would put a Pause Until here. And I would set it up
to watch the menu. And I would make it wait for this menu item
to become Enabled. Now, because Logic Pro has this little issue
where it doesn't reliably show its menu commands names to
Keyboard Maestro. This probably will cause
trouble rather than help us. So our better bet is
to just leave it. If it's working, we're
just gonna leave it. Alright, cool. So with
all of that said, let's go ahead and run
it and see what happens. Awesome. Okay, it's perfect. And it's as efficient probably as we're possibly
going to make it. Because it waits just for
this button to become Enabled clicks it does what it needs to do
in the text field. And then again,
waits for the button to become Enabled
and then clicks it. It's about as efficient and reliable as we can
possibly make it. That's great. Alright, let's check
out the takeaways.
7. Smart-ish Pauses: Pause Until Change ¯\_(ツ)_/¯: We've got another short
lesson in which we're gonna look at
another Pause Until variant that I've
never actually used in my close to 400 macros
that I've created. I've never found a
good use for it. I think that you'll see why. It's called Pause Until Change. Let's take a look. It gives
us five different options. Pause Until the system
Clipboard changes, Until the front
application changes. The pressed keys, the modifiers meaning
Shift, Command, etc. and Pause Until the mouse moves. So what do you notice
about all five of these? And especially if you took
my quick-start class, you probably can guess
my problem with it. They're all super general. We don't know what the Clipboard
should change from R2. We don't know which applications should or shouldn't be in front. We don't know which keys, which modifiers, or where the mouse
should move or not move. So to me, I have a little trouble
seeing myself using this. I tend to like my actions, including my pauses to be
as specific as possible. My experience is that this makes them as reliable as
possible because I'm being really deliberate
about what I'm waiting for, which application, which
menu commands, and so on. I'm looking for. And this is pretty much the
opposite of that. That's super general. So where could you use it? Maybe in really simple macros that involve one or two apps, such that at any
given moment you're pretty confident about
which one is in front. Or macros that should pause if you're away
from your computer. And what I'm thinking
of with that example is this Pause Until
the mouse moves. So you've got a macro running, and then it comes
to an idle state. And you don't want it to move
forward while you're away. But then even if somebody else comes up and moves your
mouse than it will go ahead. So again, I kinda don't get it. I don't see where you
would really use this one. What I come back to is that the developers of this product are really smart and this action wouldn't exist unless it adds some usefulness. I just personally
haven't found it. So I like specifics. That's me. And I think that's the best path toward having reliable macros. But your mileage may vary. So check it out, see if you can
find a use for it. I would love to see some
comments in the discussion area. If you have ideas about
how to use this guy. Alright, That's it.
8. Smart Pauses: Wait for Browser: Unless you have amazing
Internet speed where you work. And a lot of us don't.
Interacting with webpages involves a lot of
clicking and then waiting, and then clicking and
then waiting, right? Obviously, if you're going to
automate this interaction, your automation is going
to need to wait too. But fortunately for us, keyboard Maestro has an action made exactly for this purpose. It's called Wait for it. Wait for Browser
to Finish Loading. Let's take a look. If I use my handy command
control a and save for Browser. Wait for Browser
to Finish Loading. There it is. Okay. And what you'll notice
is we can choose safari or we can choose Google Chrome
or just front Browser. So depending on what
you like to use, you can set it up that way. As you know, a lot of webpages never really stopped Loading. There are always new ads
coming and so forth. Keyboard Maestro
deals with this by letting us set the
amount of time that it should wait after the first time that the page finishes loading. So it's easy to gloss over this. If you look at the way
that this is worded, it says for at least 3 s, and it would be easy to interpret that to mean
it's just going to wait 3 s. But what really happens is that Keyboard
Maestro watches for the first time that the webpage stabilizes and seems to
really be done loading, and then it starts
this countdown. So always remember that
when you're setting it up. Okay, cool. So let's see the Wait for front browser or to
load action inaction. We're going to open a
Google budget spreadsheet. And then we're going to select a particular range of
cells in that spreadsheet. That'll definitely give us some opportunities
to need to cool our jets and wait
for the page to Finish Loading. Okay,
Let's check it out. So what we want to do is let's put in a
comment and document it. What we need to do. We are going to open
the spreadsheet. We actually are going
to need to activate Safari just to make
it the front window. Um, I think I'd like for
it to be fullscreen. And so the spreadsheets
open, It's full screen. Next I want to issue
the command Control G, which is a shortcut
in Google Sheets to go to a particular
range of cells. So we need to do a Control G, that will be a keystroke action. Once we have that
little window open, we need to enter the range of
cells where we need to go. So that's gonna be insert
text and it's gonna be A1 to H 24, let's say. Okay. And then we need to hit Return
to confirm that choice, and then it should be gone. Alright, so let's get started. We want to go to that URL. Now, here's the phone part. This field wants a URL. But you remember earlier in this class we talked about
variables a little bit. And remember what I said
about global variables. They're great for any thing that doesn't change very often. But maybe you need
to call on a lot. And you don't want to remember
the exact path or the URL. This is a fantastic example of where that would be useful. So I have set up a global
variable called my budget spreadsheet that holds the
URL for this Google Sheet. Knee, right? But if I type my budget spreadsheet and
then try to run this, it's going to complain. Why? Because my budget
spreadsheet is not a URL. So it's looking at that
literally and choking. Alright, so here's the deal. The little T over here tells
us that this is a TextField, but also a token field. And think of tokens
as well, you know, like little token, it's
a stand-in for a coin, a real coin of currency, right? By the same token. Tokens can stand in for
variables in text fields. So it's like a reference
to a reference, a variable for a variable, It sounds confusing, but it just A way to tell Keyboard
Maestro hate, don't interpret this as straight text interpreted
as a variable. Okay? So it has some special syntax that we need to
use, but it's easy. Percentage sign variable. Hey, this is gonna
be a variable. If I now start typing
my budget spreadsheet, it'll recognize that
and fill it in. At which point all I
have to do is hit tab. And we're good to go. Cool. Okay, next, we're going
to activate Safari. I just choose that here. It's in my recents. And I want to make
it full screen. So I want to resize that window. And I'll choose, Let's see the front window in
Safari to make sure, because I like to be specific. And I know that there's a full screen option
right here, super handy. Alright, so just so
you can see that, I'll scroll down a little bit. So it just makes it the same size as the screen we're
currently viewing. Really straightforward. And I go into this
in more detail in the quick-start class. Check that out if
you haven't already. Great, alright, So after
we go full screen, we need to issue this
keystroke of control G, which is the shortcut in
Google Sheets for Goto range. It's knowing those Shortcuts is a big help when you're
trying to automate, because you can
just do that right. Now, the last thing that
we need is to insert that text to specify the cell range that
we want to select. So here we go, Type, insert text by typing. That's what we want. And I'm gonna put in
a one to each 24. And then I can include as part of what gets
typed, this return. You can see this character here, and you can see
that right there. So the return is part of
what's going to get typed. And so that's going to go. Now, I can pretty much guarantee you that
this is going to fail because it's just
not going to have enough time to wait
for the Browser to Finish Loading that
page before it attempts to do this guy and this guy. But let's give it a
shot. So I click on one, I Shift-click on the last one, right-click anywhere
in the selection. And then I can choose
try five actions. Let's see. It's going to fail, fail, fail. It makes it there. And we can tell because
the icons no longer flashing that macro has
been done for awhile. So it didn't even get a chance to type that text in anywhere. It was probably typing away while this page
was still loading. So that's not going to work. Alright? So the most important
thing for us to do when we're figuring
this out is say, which kind of pause doing need, and where does it need to go? We already know what
kind of pause we need. We need to wait for the
Browser to Finish Loading. But where do we put it
to help us the most, this worked and this works, and this part also worked. So really, it's right here
that we need to wait. So I'll select this action so that it gets
inserted in-between. And I'll say wait for
Safari to Finish Loading. It comes in with a
default value of 3 s. I'll bump it up to four. That should help us out. And then I think I'm actually
going to add a second one. I'm going to option
drag to here. And if for no other
reason than to let us see what that
looks like when it issues the Control
G and brings up the inter range dialog box before it types and confirms it. Alright, so once again,
I'll select the last one. Shift-click the first one. Now they're all
selected so I can right-click and choose
tries seven actions. Here we go. Notice I'm being
careful not to touch the mouse because I
don't want to interfere. It's interacting directly
with the screen. So I don't want to touch
the mouse and mess it up. It's weird. There's our range and
the upper right corner. There we go. It worked. Okay, So here we are. How we've selected
A1 through H.264. And that's it. It worked. So that gives you
a great example of how to use Wait for
Browser to Finish Loading. I use this every Sunday when I fill out a time sheet for
one of my freelance clients, it opens the time
sheet on the left. It opens my time tracking
software on the right. And in the time sheet, it actually logs me in and fills in nice things like Thank you in
the comments field. And then places the cursor in the first time
entry field for me. And I'm just sitting
there watching. So this kind of thing
is so great to set up for yourself and just save yourself some hassle
and some time. Check it out
9. You Did It!: Thank you so much for
spending your time with me. I hope the class
has been helpful. Remember just about
any macro you create Using Keyboard Maestro
is going to need some kind of pause
in your macro will instantly be smarter
and more reliable. Secondly, I really
want to encourage you to please create an
upload a project. I will look at it
and I will help you. If you run into any
stumbling blocks. It's really easy. If
you need a refresher. Just look at the project video. Finally, I'd really love it if you left a review
for this class. I read and carefully
consider every review. Again, I really appreciate your time and I hope
you've enjoyed the class. I'll see you in the next time.