• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

[Tutorial] Nützliche Befehle für AppleScript Anfänger

fdd331

Weigelts Zinszahler (Rotfranch)
Registriert
14.08.13
Beiträge
251
Grundsätzliches über den Editor:

Der „AppleScript-Editor“ befindet sich unter /Programme/Dienstprogramme.

Nachdem der Code in den Editor geschrieben wurde, muss man auf Übersetzen klicken, dann überprüft das Programm den Code auf Fehler und formatiert ihn.

Danach kann man sein Programm Ausführen und über die Exportieren-Funktion im Dateimenü auch als .app-Speichern.



1. Say

Mit dem say-Befehl kann man den Mac zum Reden bringen.

Code:
[B] say[/B] "Hello"

Die Stimme, mit der der Mac redet, kann auch verändert werden.

Code:
[B] say[/B] "Hello" using "Victoria"

Bei Victoria kann man jede andere Systemstimme einsetzen. (Alex, Bruce, Kathy, …)




2. tell

Mit dem tell-Befehl kann man Programme dazu bringen, etwas zu tun.

Code:
[B] tell[/B] [I]application[/I] "Finder"
       [B]empty[/B] [B]the[/B] trash
[B]end[/B] [B]tell[/B]

Obiger Code würde den Papierkorb (ohne Nachfrage!) leeren.

Das Wort application kann man auch als app schreiben, beim Kompilieren schreibt der Editor das Wort wieder aus.

Code:
[B] tell[/B] [I]application[/I] "Finder"
       [B]activate[/B]
[B]end[/B] [B]tell[/B]

Das Script holt den Finder in den Vordergrund.

Des weiteren findet man AppleScript-Funktionen zu jedem Programm unter Ablage > Funktionsverzeichnis öffnen. (Danke, Pill!)

3. if

Mit if kann man wenn…dann-Befehle ausführen.

Als erstes legt man eine Variable fest. Variablen kann man sich wie kleine Schubladen vorstellen, in denen der Computer ein Wort/eine Zahlenkombination, etc abspeichert. Die Variable „a“ soll „123“ enthalten.

Code:
[B] set[/B] a [B]to[/B] 123

Dann schreiben wir den if-Befehl. Dieser soll dazu führen, dass der Computer, wenn „a“ „123“ ist, einmal piepst (Befehl beep), und wenn nicht, 2 mal.

Jede if-Abfrage nuss auch mit einem „end if“ beendet werden.

Code:
[B] if[/B] a [B]is[/B] 123 [B]then[/B]
       [B]beep[/B]
[B]else[/B]
       [B]beep[/B] 2
[B]end[/B] [B]if[/B]

Er piepst ein mal – da „a“ „123“ entspricht.



4. display dialog

Mit dem Befehl display dialog kann man den Mac dazu bringen, ein Dialogfeld anzuzeigen.

Code:
[B] display dialog[/B] "Testdialog"

Das Script zeigt einen Dialog mit dem Text „Testdialog“ und den Buttons „OK“ und „Abbrechen“ (den Standardbuttons).

Diese kann man allerdings auch bearbeiten:

Code:
[B] display dialog[/B] "Testdialog" buttons ¬
       {"Weiter", "Abbrechen"}

Jetzt zeigt das Dialogfeld die Buttons „Weiter“ und „Abbrechen“.

Es gibt aber noch mehr Operatoren:

Code:
[B] display dialog[/B] "Testdialog" buttons ¬
       {"Weiter", "Abbrechen"} default button 1 ¬
       cancel button 2 ¬

default button definiert, welcher Button durch drücken der Entertaste angewählt wird.
cancel button definiert, welcher Button zum Abbrechen des Scriptes benutzt werden kann.

Man kann auch den Button, der gedrückt wurde, in eine Variable schreiben lassen. Im folgenden Beispiel wird die Variable mit „button“ bezeichnet. Die Variable im Beispiel kann zwei Inhalte haben: „Hi“ oder „Goodbye“, je nachdem, welcher Button angeklickt wurde.

Code:
[B] set[/B] button [B]to[/B] [B]the[/B] button returned [B]of[/B] ([B]display dialog[/B] "Hello" buttons ¬
         {"Hi", "Goodbye"})

Gleiches geht auch mit dem zurückgeben von Text. Dazu braucht man allerdings im "display dialog"-Statement noch den Befehl default answer "" - Der Text, der in den Anführungszeichen steht, wird auch gleichzeitig als Standardtext im Dialog verwendet. In folgendem Beispiel entspricht die Variable thetext dem Text, der eingegeben wurde:

Code:
[B]set[/B] thetext [B]to[/B] [B]the[/B] text returned [B]of[/B] ([B]display dialog[/B] "Geben Sie einen Text ein…" default answer "")



Mit allen Befehlen, die ich bis jetzt beschrieben habe, kann man zum Beispiel ein Script schreiben, dass den Papierkorb mal anders leert.

Code:
[B] say[/B] "Do you want to empty the trash?" using "Alex"
 
[B]set[/B] answer [B]to[/B] [B]the[/B] button returned [B]of[/B] ([B]display dialog[/B] "Do you want to empty the trash?" buttons ¬
       {"Yes", "No"} default button 1)
 
[B]if[/B] answer [B]is[/B] "Yes" [B]then[/B]
      
       [B]tell[/B] [I]application[/I] "Finder"
               [B]empty[/B] [B]the[/B] trash
       [B]end[/B] [B]tell[/B]
      
[B]end[/B] [B]if[/B]

Dieses Script macht folgendes:
- es stellt mit der Stimme „Alex“ die Frage, ob der Papierkorb geleert werden soll
- Es stellt im Dialogfeld die gleiche Frage dar, und gibt die beiden Antwortbuttons „Yes“ und „No“ vor. Als Standardantwort wird „yes“ definiert.
- Dann wird die Antwort angefragt: Wenn „No“ gedrückt ist, geschieht nichts und das Programm endet. Ist die Antwort „Yes“, dann teilt das Programm der Anwendung „Finder“ mit, dass der Papierkorb geleert werden soll.



© fdd331
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Pill

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Gute Zusammenstellung. Ich würde vielleicht noch erwähnen, dass man unter Ablage->Funktionsverzeichnis öffnen... sich zu jedem Programm die verfügbaren Befehle anzeigen lassen kann.
 

fdd331

Weigelts Zinszahler (Rotfranch)
Registriert
14.08.13
Beiträge
251
Ist hinzugefügt, Danke!
 

Killerdillerhd

Erdapfel
Registriert
16.07.14
Beiträge
1
Hallo,

Ich habe da so ein kleines Problem ich will mit meinem Script nun ein neues Dokument mit Libre Office erstellen wie geht das ? Wie ich das Dokument starte weiß ich:
tell application "LibreOffice"

activate

end tell
 

fdd331

Weigelts Zinszahler (Rotfranch)
Registriert
14.08.13
Beiträge
251
Hallo,

Ich habe da so ein kleines Problem ich will mit meinem Script nun ein neues Dokument mit Libre Office erstellen wie geht das ? Wie ich das Dokument starte weiß ich:
tell application "LibreOffice"

activate

end tell

Ablage > Funktionsverzeichnis öffnen, dann kannst du LibreOffice auswählen und sehen, welche Commands/Anweisungen dir zur Verfügung stehen.

lg
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Unterstützt LibreOffice überhaupt AppleScript? Das würde mich jetzt sehr wundern.