Warning: Cannot modify header information - headers already sent by (output started at /mnt/web7/41/25/5244025/htdocs/4/applescript.php:1) in /mnt/web7/41/25/5244025/htdocs/include/counter_01.php on line 95
AppleScript Tutorial / Testscript zum ausprobieren
Zum Inhalt springen.
Zum Seitenanfang springen.
Du befindest Dich genau hier: Home > Computer > Coding > AppleScript ausprobiert .

AppleScript ausprobiert:


Ich habe mir Apples Mac OS Scriptsprache AppleScript ein wenig angesehen. Nicht dass ich nicht jeden Klick auf meinem Mac genieße würde, aber neben der Automatisierung ermöglicht AppleScript ja auch die Realisierung netter Erweiterungen.

Vielleicht kann ich das irgendwann mal gebrauchen...

Nach Eingabe von "Skripteditor" in Spotlight bin ich auch schon in der Entwicklungsumgebung. Hier tippe ich nun einfach beep 5 ein und klicke auf "Ausführen" – schon habe ich mein erstes Erfolgserlebnis!

Ich lösche beep 5 und gebe say "Hallo Welt! Da probiert doch jemand Applescript." using "Zarvox" ein und klicke "Ausführen".

Erinnerungen an alte C64-Tage werden in mir wach. Damals konnte ich allerdings nicht die Stimme verändern, jetzt schon.
Eine Änderung von Zarvox auf Victoria - schon ist der Sprecher geändert. Damit spiele ich mal ein wenig weiter.

say "Hallo Welt! Da probiert doch jemand Applescript." using "Zarvox"
say "Und was machen wir dann jetzt?" using "Victoria"
say "Löschen wir den Papierkorb!" using "Zarvox"
say "Da fragen wir aber lieber vorher nach." using "Victoria"
say "Na gut..." using "Zarvox"

Ich geh mal davon aus, dass mein Rechner bei einer solchen Aktion noch deutlich mehr mit sich selbst kommuniziert.
An dieser Stelle möchte ich jetzt bitte auch gern ins Gespräch mit eingebunden werden. Mit display dialog ist das schnell gemacht. Die Frage nehme ich zuvor in eine Variable auf. Das wird dann so geschrieben:
set FrageAnMich to "Sollen wir den Papierkorb leeren?"
Mit display dialog FrageAnMich lasse ich die Frage anzeigen.

Die Auswahlmöglichkeiten möchte ich aber nun noch selbst bestimmen. Dafür erweitere ich display dialog FrageAnMich um buttons {}. Das sieht dann so aus:
display dialog FrageAnMich buttons {"Ja",
     "Nicht sicher", "Nein"}


Der komplette Quelltext sieht nun so aus:
say "Hallo Welt! Da probiert doch jemand Applescript." using "Zarvox"
say "Und was machen wir dann jetzt?" using "Victoria"
say "Löschen wir den Papierkorb!" using "Zarvox"
say "Da fragen wir aber lieber vorher nach." using "Victoria"
say "Na gut..." using "Zarvox"
beep 3
set FrageAnMich to "Sollen wir den Papierkorb leeren?"
display dialog FrageAnMich buttons {"Ja",
     "Nicht sicher", "Nein"}

Jetzt soll aber noch der Papierkorb geleert werden. Dies passiert mit diesen Zeilen: tell application "Finder"
    empty the trash
end tell

Einfach an das Script angefügt, hätte ich im positiven Fall nur das Gefühl eine Entscheidungsmöglichkeit zu haben. Die Ausführung muss also je nach Auswahl ausgeführt oder übersprungen werden.

Damit ich herausfinden kann, was bei der Fragestellung angeklickt wurde, erweitere ich den Dialog. set tempVar to display dialog FrageAnMich buttons {"Ja",
     "Nicht sicher", "Nein"}

set Auswahl to button returned of tempVar

In FrageAnMich wird nun die komplette Rückgabe der Schaltfläche gespeichert. Mit button returned of FrageAnMich bekomme ich die Rückgabewert zur Auswahl der Schaltfläche. Damit kann ich weiterarbeiten und lasse dafür die Variable Auswahl über die Variable tempVar diesen Wert aufnehmen.

Mit einer if/then/else-Abfrage lasse ich jetzt den Finder nur dann den Papierkorb leeren, wenn der Rückgabewert von to button returned of tempVar bzw. Auswahl "Ja" ist: set tempVar to display dialog FrageAnMich buttons {"Ja",
     "Nicht sicher", "Nein"}

set Auswahl to button returned of tempVar
if Auswahl = "Ja" then
     tell application "Finder"
          empty the trash
     end tell
end if

Damit habe ich alles zusammen, was ich für meine Funktion brauche. Der komplette Quelltext sieht dann nun so aus: say "Hallo Welt! Da probiert doch jemand Applescript." using "Zarvox"
say "Und was machen wir dann jetzt?" using "Victoria"
say "Löschen wir den Papierkorb!" using "Zarvox"
say "Da fragen wir aber lieber vorher nach." using "Victoria"
say "Na gut..." using "Zarvox"
beep 3
set FrageAnMich to "Sollen wir den Papierkorb leeren?"
set tempVar to display dialog FrageAnMich buttons {"Ja", "Nicht sicher", "Nein"}
set Auswahl to button returned of tempVar
if Auswahl = "Ja" then
     tell application "Finder"
          empty the trash
     end tell
     say
"Das wars." using "Zarvox"
else
     say "Also lieber nicht." using "Victoria"
end if

Das Skript ist fertig! Wahnsinn - in Zukunft muss ich meinen Papierkorb nie wieder auf die herkömmliche Weise löschen!
Ihr könnt das Testskript hier herunterladen.

Quellen:
Das tolle eBook AppleScript Für Absolute Starter von Bert Altenburg.