• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Mein erstes AppleScript

Axel!

Osnabrücker Reinette
Registriert
21.12.07
Beiträge
993
Hallo,
ich versuche gerade mein erstes AppleScript zu schreiben. Es soll mir iTunes, Mail, Safari und Adium öffnen. Irgendwie macht es das aber nicht. Ich habe im Automator ein neues AppleScript hinzugefügt und dann als Text:

tell application "iTunes, Mail, Adium, Safari"
open

eingegeben. Wenn ich nur ein Programm in die Gänsefüßchen setzte, dann funzt es, aber so nicht. Kann mir einer sagen, wieso das nicht geht?

Gruß
Axel!
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Du kannst immer nur eine Applikation auf ein mal ansprechen. Also musst du es so machen
tell application "iTunes" to activate
tell application "Mail" to activate
...

Und es muss activate und nicht open sein um ein Programm zu starten.
 
  • Like
Reaktionen: Axel!

Member 66059

Gast
Meines erachtens musst du alles extra schreiben und anstatt den Befehl open zu nehmen, würde ich auf activate zurückgreifen. Das sieht dann wie folgt aus:

tell application "Adium"
activate
end tell
tell application "iTunes"
activate
end tell
tell application "Mail"
activate
end tell
tell application "Safari"
activate
end tell


Ich hoffe ich konnte dir helfen.

MfG
Daporix
 
  • Like
Reaktionen: Axel!

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
Wenn man nur ein Befehl übergeben will reicht es halt mit tell application to sonst mit tell und end tell
 

Goidma

Rheinischer Krummstiel
Registriert
07.09.08
Beiträge
377
wenn es nur darum geht, das program zu öffnen und weiter nichts zu machen brauchst du kein "end tell"
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
24.02.07
Beiträge
253
"launch" ist die bessere wahl, da die apps dann (im gegensatz zu "activate") nicht zwangsläufig in den vordergrund geholt werden, und nicht abgewartet wird, bis dies der fall ist, bevor die nächste app gezündet wird. dein versuch konnte nicht klappen, da es die application "iTunes, Mail, Adium, Safari" nicht gibt (ist ja nur ein string, der da übergeben wird, keine liste, aber auch mit einer liste klappt das nicht). du musst ein liste nehmen, und diese per repeat durchlaufen:

repeat with myApp in {"Adium", "iTunes", "Mail", "Safari"}
launch application myApp
end repeat
 

plaetzchen

Kaiserapfel
Registriert
21.10.05
Beiträge
1.729
"launch" ist die bessere wahl, da die apps dann (im gegensatz zu "activate") nicht zwangsläufig in den vordergrund geholt werden, und nicht abgewartet wird, bis dies der fall ist, bevor die nächste app gezündet wird. dein versuch konnte nicht klappen, da es die application "iTunes, Mail, Adium, Safari" nicht gibt (ist ja nur ein string, der da übergeben wird, keine liste, aber auch mit einer liste klappt das nicht). du musst ein liste nehmen, und diese per repeat durchlaufen:

repeat with myApp in {"Adium", "iTunes", "Mail", "Safari"}
launch application myApp
end repeat

Du hast recht das ist die eleganteste Lösung