Detlef Schulz AppleScript - Der automatische Mac AppleScript – Der automatische Mac Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detail- lierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Copyright © 2009 Smart Books Publishing AG ISBN: 978-3-908497-78-3 1. Auflage 2009 Lektorat: Jeremias Radke Korrektorat: Dr. Anja Stiller-Reimpell Layout und Satz: Peter Murr Covergestaltung: Johanna Voss Coverfoto: iStockphoto Illustrationen: fotolia, iStockphoto Druck und Bindung: Stürtz GmbH, Würzburg Umwelthinweis: Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt. Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus umweltverträglichem und recyclingfähigem PE-Material. Trotz sorgfältigem Lektorat schleichen sich manchmal Fehler ein. Autoren und Verlag sind Ihnen dankbar für Anregungen und Hinweise! Smart Books Publishing AG Sonnenhof 3, CH-8808 Pfäffikon SZ http://www.smartbooks.ch E-Mail: [email protected] Aus der Schweiz: Tel. 055 420 11 29, Fax 055 420 11 31 Aus Deutschland und Österreich: Tel. 0041 55 420 11 29, Fax 0041 55 420 11 31 Alle Rechte vorbehalten. Die Verwendung der Texte und Bilder, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und strafbar. Das gilt insbesondere für die Vervielfältigung, Übersetzung, die Verwendung in Kursunterlagen oder elektronischen Systemen. Der Verlag übernimmt keine Haftung für Folgen, die auf unvollständige oder fehlerhafte Angaben in diesem Buch oder auf die Verwendung der mitgelieferten Software zurückzuführen sind. Nahezu alle in diesem Buch behandelten Hard- und Software-Bezeichnungen sind zugleich eingetragene Warenzeichen oder sollten als solche behandelt werden. Besuchen Sie uns im Internet! www.smartbooks.ch www.smartbooks.de Übersicht Vorwort 23 Kapitel 1 Einführung 27 Kapitel 2 Die Architektur 37 Kapitel 3 Das Handwerkszeug 51 Kapitel 4 Die Sprache 97 Kapitel 5 Die Standarderweiterungen 527 Kapitel 6 Von der Kunst, ein AppleScript zu starten 627 Kapitel 7 GUI-Scripting 699 Kapitel 8 Unix 749 Anhänge 767 Index 817 Inhaltsverzeichnis Vorwort 23 Kapitel 1 Einführung 27 Was ist AppleScript? .......................................................................................................28 Woher kommt AppleScript? ............................................................................................29 Wofür AppleScript geeignet ist ........................................................................................33 Wofür AppleScript weniger geeignet ist ...........................................................................34 Was Sie zum Erlernen von AppleScript brauchen...........................................................35 Kapitel 2 Die Architektur 37 OSA ................................................................................................................................38 Sprachkomponenten .......................................................................................................40 Skripterweiterungen .......................................................................................................42 Funktionsverzeichnisse ...................................................................................................44 Anwendungen .................................................................................................................47 Nicht-skriptbare Anwendungen .........................................................................48 Skriptbare Anwendungen ..................................................................................48 Aufzeichnungsfähige Anwendungen ..................................................................48 Anwendungen, die Skripts ausführen können ....................................................49 Anwendungen, die Skripts erstellen können .......................................................49 Anwendungen, die es erlauben, Skripts an Programmobjekte anzuhängen .......50 Anwendungen, die es erlauben, das Programm selber umzubauen ...................50 Kapitel 3 Das Handwerkszeug 51 AppleScript-Editoren ......................................................................................................52 Der Skripteditor........................................................................................................52 Der Editorbereich ..............................................................................................53 Schreiben .....................................................................................................53 Übersetzen ...................................................................................................54 Ausführen ....................................................................................................54 Debugging ...................................................................................................55 Unterschiedliche Schreibweisen ...................................................................55 Groß- und Kleinschreibung .........................................................................56 Der Skriptassistent .......................................................................................56 Skriptbausteine im Kontextmenü ................................................................57 Die Steuerungsleiste .....................................................................................58 Skripts aufzeichnen .....................................................................................59 Der Protokollbereich des Skripteditors ...............................................................61 Beschreibung ...............................................................................................61 Ergebnis .......................................................................................................63 Event-Protokoll ...........................................................................................64 Die Verlaufsfenster .............................................................................................65 Die Bibliothek ....................................................................................................66 Das Funktionsverzeichnis ..................................................................................67 Skripteditor-Einstellungen .................................................................................68 Tafel Allgemein ............................................................................................68 Tafel Bearbeitung .........................................................................................68 Tafel Formatierung ......................................................................................69 Tafel Verlauf.................................................................................................70 Tafel Plugins ................................................................................................70 Sichern und Dateiformate .................................................................................70 Kompilieren und Dekompilieren beim Sichern und Öffnen ........................71 Ein Wort zu Type- und Creator-Codes und Resource-Forks .......................72 Dateiformat »Skript« ...................................................................................74 Dateiformat »Programm« ...........................................................................75 Dateiformat »Skript-Bundle« ......................................................................76 Dateiformat »Programm-Bundle« ..............................................................78 Dateiformat »Text« .....................................................................................80 Bundle-Inhalt ....................................................................................................80 Alternative AppleScript-Editoren .............................................................................81 Script Debugger .................................................................................................82 SmileLab und Smile ...........................................................................................83 Werkzeuge zur Erstellung grafischer Benutzerschnittstellen .....................................85 AppleScript Studio .............................................................................................85 FaceSpan ............................................................................................................87 Das AppleScript-Dienstprogramm .................................................................................89 Das Skriptmenü ..............................................................................................................92 Computerskripts .......................................................................................................92 Benutzerskripts.........................................................................................................93 Programmskripts ......................................................................................................94 Programmspezifische AppleScript-Integration ...............................................................95 Kapitel 4 Die Sprache 97 Einstieg ...........................................................................................................................98 Zahlen ............................................................................................................................99 Arithmetische Operatoren ........................................................................................99 Die Klassen integer und real ...................................................................................101 Umwandlung von Zahlen ......................................................................................102 Klammern und Berechnungsreihenfolge ................................................................102 Der Befehl round ....................................................................................................104 Der Befehl random number ...................................................................................106 Kommentare .................................................................................................................108 Kommentare über das Kontextmenü des Skripteditors ..........................................110 Das Fortführungszeichen ..............................................................................................111 Variablen ......................................................................................................................112 Bezeichner ..............................................................................................................114 Reservierte Wörter .................................................................................................115 Zuweisungsoperationen mit dem Befehl set ...........................................................116 Der Befehl get .........................................................................................................120 Die Variable result ..................................................................................................121 Der Befehl log .........................................................................................................122 Textgrundlagen .............................................................................................................124 Der Verknüpfungsoperator & ................................................................................124 Steuerzeichenkonstanten ........................................................................................125 Escape-Sequenzen ..................................................................................................127 Listengrundlagen ..........................................................................................................130 Eine Liste aus Variablen zusammenbauen.............................................................131 Referenzformen am Beispiel von Listen ........................................................................132 Auswahl eines einzelnen Elements..........................................................................132 first, second, third item… .................................................................................132 item n ..............................................................................................................133 item n of item n ................................................................................................134 Auswahl eines Bereiches .........................................................................................135 through ............................................................................................................135 from … to ........................................................................................................136 some, middle und every ..........................................................................................136 Zuweisungsoperationen mit Referenzformen .........................................................137 Referenzformen mit Angabe der Klasse..................................................................137 Referenzformen mit Klasse und every, some und middle .......................................138 Relative Referenzformen mit before und after ........................................................139 Arbeiten in der Liste ......................................................................................................140 Ändern von Werten ................................................................................................140 Hinzufügen von Werten .........................................................................................141 Entfernen von Werten ............................................................................................143 Eigenschaften einer Liste ........................................................................................143 Massenzuweisungen über Listen ............................................................................145 Der Befehl count in Listen ......................................................................................146 Der Unterschied zwischen set und copy ..................................................................147 Umwandlung von Listen ........................................................................................150 Arbeiten mit Text ..........................................................................................................151 Unicode ..................................................................................................................151 id und character id...........................................................................................152 Kombinierte Unicode-Zeichen .........................................................................154 Eigenschaften eines Textes ......................................................................................155 Elemente eines Textes .............................................................................................157 character ..........................................................................................................157 word .................................................................................................................157 paragraph ........................................................................................................158 text ...................................................................................................................158 text item ...........................................................................................................159 Referenzformen auf Textelemente .................................................................................159 Auswahl eines Textbereichs .....................................................................................160 some, middle und every im Text .............................................................................162 text items und text item delimiters ..........................................................................162 Schnelles Suchen und Ersetzen mit text item delimiters ...................................166 AppleScript's text item delimiters .....................................................................167 Der Befehl count im Text ........................................................................................168 Umwandlung einer Liste in Text .............................................................................169 Umwandlung von Text in eine Liste .......................................................................169 Implizite Umwandlung von Text in Zahlen ............................................................170 Explizite Umwandlung von Text in Zahlen ............................................................171 Records .........................................................................................................................172 Record-Literale .......................................................................................................172 Einen Record zusammenbauen ..............................................................................174 Hinzufügen und Entfernen von Werten .................................................................174 Zusammenbau über Massenzuweisung ..........................................................175 Referenzformen in einem Record ...........................................................................176 Auswahl mit some und every ...........................................................................176 Auswahl über die Klasse ..................................................................................177 Umwandlung eines Records ...................................................................................177 Eigenschaften eines Records ...................................................................................178 Missing value ..........................................................................................................179 Der Befehl count in Records ...................................................................................180 Eigenschaften von Objekten ..........................................................................................180 Ändern einer Eigenschaft eines Objekts ..................................................................184 Die Datumsklasse .........................................................................................................188 Der Befehl current date ..........................................................................................188 Datumsliterale ........................................................................................................189 Rechnen mit date ....................................................................................................190 Eigenschaften von date ...........................................................................................192 class ..................................................................................................................192