Our first rule of thumb for when
AppleScript is appropriate is that you should have a scriptable
application that you want to automate with it.
That’s because AppleScript, although it is a genuine
programming language with some interesting and useful features, is
intended for use with other applications, which are expected to
provide the real muscle. Thus AppleScript’s
numeric abilities are limited (it
has no built-in trigonometric or logarithmic functions) and its
text processing facilities are
fairly rudimentary (it doesn’t support regular
expressions and isn’t even very good at extracting
substrings). So, for example, if I wanted to remove a text
file’s HTML markup, or extract the headers and
bodies of all the messages in an .mbox
file,
I’d be far happier using
Perl. On the other
hand, AppleScript can drive Perl (and vice versa), so in your
AppleScript code you can take advantage of Perl’s
powers (and vice versa); we’ll see several examples
later in the book. Thus success might simply be a matter of combining
specialties appropriately.
Using AppleScript with a scriptable application is not itself a panacea. First you need a scriptable application that has the capabilities to do what you want. And even such an application might not provide a way to script those particular capabilities. Still, you can’t worry about that if you don’t know whether an application is scriptable in the first place!
Here’s the most reliable way to ascertain whether an
application is scriptable. Start up Apple’s
Script Editor program.
(It’s in
/Applications/AppleScript
.) Choose File
→ Open Dictionary. This shows you a list of
applications on your computer that the Script Editor thinks are
scriptable. Initially, this list might omit some applications, so you
can press the Browse button to locate an application using the
standard Open dialog. If an application is dimmed here, it
isn’t scriptable. To double-check, choose and open
an application. If a Dictionary window appears, the application is
probably scriptable; but this could be a false positive. Make sure
that the left side of the Dictionary window lists commands other than
the “required” commands
open
, print
, and
quit
—that it lists commands that actually
do something. As a rule of thumb, the more items
you see listed on the left side of the window, the more scriptable
the application is, though this really is a gross
over-simplification. Later in the book we’ll go into
much more detail about the Dictionary and what it tells you (Chapter 19 and Appendix A).
The scriptable applications I use with some regularity include many of those supplied by Apple as part of Mac OS X, such as Address Book, AppleWorks, iCal, iTunes, Mail, Safari, TextEdit, Apple System Profiler, and the Finder. Then there are important third-party programs like Microsoft Word and Excel, FileMaker Pro, Internet Explorer, Interarchy, Mailsmith, BBEdit, StuffIt Deluxe, GraphicConverter, and Frontier. You might also have QuarkXPress or Photoshop. Of course there are many others.
It is sometimes possible to drive even a nonscriptable application, by using AppleScript to simulate a “ghost” user who can physically choose menu items, push buttons, and so forth. This approach should probably be used only as a last resort, but it’s important to know about, so I’ll demonstrate it later in this chapter, and there’s a further chapter devoted to it (Chapter 22).
Get AppleScript: The Definitive Guide now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.