| | Copyright |
| | Preface |
|
| | The Scope of This Book |
|
| | Versions |
|
| | How This Book Is Organized |
|
| | Conventions Used in This Book |
|
| | How to Contact Us |
|
| | Safari® Enabled |
|
| | Acknowledgments (First Edition) |
|
| | Acknowledgments (Second Edition) |
| |
Part I:
AppleScript Overview |
|
| |
Chapter 1.
Why to Use AppleScript |
|
| |
Section 1.1.
The Nature and Purpose of AppleScript |
|
| |
Section 1.2.
Is This Application Scriptable? |
|
| |
Section 1.3.
Calculation and Repetition |
|
| |
Section 1.4.
Reduction |
|
| |
Section 1.5.
Customization |
|
| |
Section 1.6.
Combining Specialties |
|
| |
Chapter 2.
Where to Use AppleScript |
|
| |
Section 2.1.
Script Editor |
|
| |
Section 2.2.
Internally Scriptable Application |
|
| |
Section 2.3.
Script Runner |
|
| |
Section 2.4.
Automatic Location |
|
| |
Section 2.5.
Application |
|
| |
Section 2.6.
Unix |
|
| |
Section 2.7.
Hyperlinks |
|
| |
Section 2.8.
Automator |
|
| |
Chapter 3.
Basic Concepts |
|
| |
Section 3.1.
Apple Events |
|
| |
Section 3.2.
The Open Scripting Architecture |
|
| |
Section 3.3.
Script |
|
| |
Section 3.4.
Compiling and Decompiling |
|
| |
Section 3.5.
Compiled Script Files |
|
| |
Section 3.6.
Script Text File |
|
| |
Section 3.7.
Applet and Droplet |
|
| |
Section 3.8.
Scripting Addition |
|
| |
Section 3.9.
Dictionary |
|
| |
Section 3.10.
Missing External Referents |
|
| |
Section 3.11.
Modes of Scriptability |
| |
Part II:
The AppleScript Language |
|
| |
Chapter 4.
Introducing the Language |
|
| |
Section 4.1.
A Little Language |
|
| |
Section 4.2.
Extensibility and Its Perils |
|
| |
Section 4.3.
The "English-likeness" Monster |
|
| |
Section 4.4.
Object-likeness |
|
| |
Section 4.5.
LISP-likeness |
|
| |
Section 4.6.
The Learning Curve |
|
| |
Chapter 5.
Syntactic Ground of Being |
|
| |
Section 5.1.
Lines |
|
| |
Section 5.2.
Result |
|
| |
Section 5.3.
Comments |
|
| |
Section 5.4.
Abbreviations and Synonyms |
|
| |
Section 5.5.
Blocks |
|
| |
Section 5.6.
The |
|
| |
Chapter 6.
A Map of the World |
|
| |
Section 6.1.
Scope Blocks |
|
| |
Section 6.2.
Levels and Nesting |
|
| |
Section 6.3.
The Top Level |
|
| |
Section 6.4.
Code and the Run Handler |
|
| |
Section 6.5.
Variables |
|
| |
Chapter 7.
Variables |
|
| |
Section 7.2.
Assignment and Retrieval |
|
| |
Section 7.3.
Declaration and Definition of Variables |
|
| |
Section 7.4.
Variable Names |
|
| |
Chapter 8.
Script Objects |
|
| |
Section 8.1.
Script Object Definition |
|
| |
Section 8.2.
Run Handler |
|
| |
Section 8.3.
Script Properties |
|
| |
Section 8.4.
Script Objects as Values |
|
| |
Section 8.5.
Top-Level Entities |
|
| |
Section 8.6.
Compiled Script Files as Script Objects |
|
| |
Section 8.7.
Inheritance |
|
| |
Chapter 9.
Handlers |
|
| |
Section 9.1.
Handler Definition |
|
| |
Section 9.2.
Returned Value |
|
| |
Section 9.3.
Handlers as Values |
|
| |
Section 9.4.
Parameters |
|
| |
Section 9.5.
Pass by Reference |
|
| |
Section 9.6.
Syntax of Defining and Calling a Handler |
|
| |
Section 9.7.
Event Handlers |
|
| |
Section 9.8.
The Run Handler |
|
| |
Section 9.9.
Recursion |
|
| |
Section 9.10.
Power Handler Tricks |
|
| |
Chapter 10.
Scope |
|
| |
Section 10.1.
Regions of Scope |
|
| |
Section 10.2.
Kinds of Variable |
|
| |
Section 10.3.
Scope of Top-Level Entities |
|
| |
Section 10.4.
Scope of Locals |
|
| |
Section 10.5.
Scope of Globals |
|
| |
Section 10.6.
Scope of Undeclared Variables |
|
| |
Section 10.7.
Declare Your Variables |
|
| |
Section 10.8.
Free Variables |
|
| |
Section 10.9.
Redeclaration of Variables |
|
| |
Section 10.10.
Closures |
|
| |
Chapter 11.
Objects |
|
| |
Section 11.1.
Messages |
|
| |
Section 11.2.
Attributes |
|
| |
Section 11.3.
Class |
|
| |
Section 11.4.
Target |
|
| |
Section 11.5.
Get |
|
| |
Section 11.6.
It |
|
| |
Section 11.7.
Me |
|
| |
Section 11.8.
Properties and Elements |
|
| |
Section 11.9.
Element Specifiers |
|
| |
Section 11.10.
Operations on Multiple References |
|
| |
Section 11.11.
Assignment of Multiple Attributes |
|
| |
Section 11.12.
Object String Specifier |
|
| |
Chapter 12.
References |
|
| |
Section 12.1.
Reference as Target |
|
| |
Section 12.2.
Reference as Incantation |
|
| |
Section 12.3.
Creating a Reference |
|
| |
Section 12.4.
Identifying References |
|
| |
Section 12.5.
Dereferencing a Reference |
|
| |
Section 12.6.
Trouble with Contents |
|
| |
Section 12.7.
Creating References to Variables |
|
| |
Section 12.8.
Reference as Parameter |
|
| |
Chapter 13.
Datatypes |
|
| |
Section 13.1.
Application |
|
| |
Section 13.2.
Machine |
|
| |
Section 13.3.
Data |
|
| |
Section 13.4.
Boolean |
|
| |
Section 13.5.
Integer, Real, and Number |
|
| |
Section 13.6.
Date |
|
| |
Section 13.7.
String |
|
| |
Section 13.8.
Unicode Text |
|
| |
Section 13.9.
File and Alias |
|
| |
Section 13.10.
List |
|
| |
Section 13.11.
Record |
|
| |
Chapter 14.
Coercions |
|
| |
Section 14.1.
Implicit Coercion |
|
| |
Section 14.2.
Explicit Coercion |
|
| |
Section 14.3.
Boolean Coercions |
|
| |
Section 14.4.
Number, String, and Date Coercions |
|
| |
Section 14.5.
File Coercions |
|
| |
Section 14.6.
List Coercions |
|
| |
Section 14.7.
Unit Conversions |
|
| |
Chapter 15.
Operators |
|
| |
Section 15.1.
Implicit Coercion |
|
| |
Section 15.2.
Arithmetic Operators |
|
| |
Section 15.3.
Boolean Operators |
|
| |
Section 15.4.
Comparison Operators |
|
| |
Section 15.5.
Containment Operators |
|
| |
Section 15.6.
Concatenation Operator |
|
| |
Section 15.7.
Parentheses |
|
| |
Section 15.8.
Who Performs an Operation |
|
| |
Chapter 16.
Global Properties |
|
| |
Section 16.1.
Strings |
|
| |
Section 16.2.
Numbers |
|
| |
Section 16.3.
Miscellaneous |
|
| |
Chapter 17.
Constants |
|
| | true, false |
|
| | yes, no, ask |
|
| | missing value |
|
| | null |
|
| | plain, bold, italic, outline, shadow, underline, superscript, subscript, strikethrough, small caps, all caps, all lowercase, condensed, expanded, hidden |
|
| | case, diacriticals, white space, hyphens, expansion, punctuation, numeric strings |
|
| | application responses |
|
| | current application |
|
| | Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday |
|
| | January, February, March, April, May, June, July, August, September, October, November, December |
|
| |
Chapter 18.
Commands |
|
| |
Section 18.1.
Application Commands |
|
| |
Section 18.2.
Standard Commands |
|
| |
Section 18.3.
Logging Commands |
|
| |
Chapter 19.
Control |
|
| |
Section 19.1.
Branching |
|
| |
Section 19.2.
Looping |
|
| |
Section 19.3.
Tell |
|
| |
Section 19.4.
Using Terms From |
|
| |
Section 19.5.
With |
|
| |
Section 19.6.
Considering/Ignoring |
|
| |
Section 19.7.
Errors |
|
| |
Section 19.8.
Second-Level Evaluation |
| |
Part III:
AppleScript In Action |
|
| |
Chapter 20.
Dictionaries |
|
| |
Section 20.1.
Resolution of Terminology |
|
| |
Section 20.2.
Terminology Clash |
|
| |
Section 20.3.
Nonsensical Apple Events |
|
| |
Section 20.4.
Raw Four-Letter Codes |
|
| |
Section 20.5.
Multiple-Word Terms |
|
| |
Section 20.6.
What's in a Dictionary |
|
| |
Section 20.7.
The 'aeut ' Resource |
|
| |
Section 20.8.
Inadequacies of the Dictionary |
|
| |
Chapter 21.
Scripting Additions |
|
| |
Section 21.1.
Pros and Cons of Scripting Additions |
|
| |
Section 21.2.
Classic Scripting Additions |
|
| |
Section 21.3.
Loading Scripting Additions |
|
| |
Section 21.4.
Standard Scripting Addition Commands |
|
| |
Chapter 22.
Speed |
|
| |
Section 22.1.
Tools of the Trade |
|
| |
Section 22.2.
Apple Events |
|
| |
Section 22.3.
List Access |
|
| |
Section 22.4.
Scripting Additions |
|
| |
Section 22.5.
Context |
|
| |
Chapter 23.
Scriptable Applications |
|
| |
Section 23.1.
Targeting Scriptable Applications |
|
| |
Section 23.2.
Some Scriptable Applications |
|
| |
Chapter 24.
Unscriptable Applications |
|
| |
Section 24.1.
Historical Perspective |
|
| |
Section 24.2.
Getting Started with Accessibility |
|
| |
Section 24.3.
GUI Scripting Examples |
|
| |
Chapter 25.
Unix |
|
| |
Section 25.1.
Do Shell Script |
|
| |
Section 25.2.
Osascript |
|
| |
Chapter 26.
Triggering Scripts Automatically |
|
| |
Section 26.1.
Digital Hub Scripting |
|
| |
Section 26.2.
Folder Actions |
|
| |
Section 26.3.
CGI Application |
|
| |
Section 26.4.
Timers, Hooks, Attachability, Observability |
|
| |
Chapter 27.
Writing Applications |
|
| |
Section 27.1.
Applets |
|
| |
Section 27.2.
AppleScript Studio |
|
| |
Section 27.3.
Cocoa Scripting |
|
| |
Section 27.4.
AppleScript Studio Scriptability |
| |
Part IV:
Appendixes |
|
| |
Appendix A.
The AppleScript Experience |
|
| |
Section A.1.
The Problem |
|
| |
Section A.2.
A Day in the Life |
|
| |
Section A.3.
Conclusions, Lessons, and Advice |
|
| |
Appendix B.
Apple Events Without AppleScript |
|
| |
Section B.1.
Pure Raw Apple Events |
|
| |
Section B.2.
JavaScript |
|
| |
Section B.3.
UserTalk |
|
| |
Section B.4.
Perl |
|
| |
Section B.5.
Python |
|
| |
Appendix C.
Tools and Resources |
|
| |
Section C.1.
Scripting Software and Tools |
|
| |
Section C.2.
Scriptable Software |
|
| |
Section C.3.
AppleScript Documentation |
|
| |
Section C.4.
Writing a Scripting Addition |
|
| |
Section C.5.
Writing a Scriptable Application |
|
| |
Section C.6.
Portals, Instruction, and Repositories |
|
| |
Section C.7.
Mailing Lists |
|
| |
Section C.8.
Books |
|
| |
Section C.9.
Unix Scripting |
| | Colophon |
| | Index |