| | 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 |