[ Team LiB ] |
1.2 Is This Application Scriptable?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). |
[ Team LiB ] |