iTunes Script

fidpa

fidpa

Aktives Mitglied
Thread Starter
Dabei seit
22.11.2006
Beiträge
112
Reaktionspunkte
2
Moin,

ich nutze ein Script, das den iTunes Volumeregler an die Systemlautstärke angleicht.

Hier der Code:

Code:
on idle
set machineVol to output volume of (get volume settings)
tell application "iTunes"
set sound volume to machineVol
end tell
return 1
end idle

Wenn das Script nun läuft und ich iTunes beenden will, dann kommt die Meldung "AppleEvent liefert eine Zeitüberschreitung" und iTunes wird automatisch wieder gestartet.

Nervig ist das, wenn ich bspw. im Rahmen einer Softwareaktualisierung iTunes beenden muss, um das MBP neuzustarten.

Die konkreten Fragen, die sich mir stellen:
1. Kann man das Skript entsprechend modifizieren, dass es entweder beim Beenden von iTunes auch beendet wird oder 'friedlich' weiter läuft, wenn ich iTunes beende?
2. Kann ich das Skript per Terminal beenden?
Wie lautet im Terminal die Eingabe?
3. Kann ich das Skript per Quicksilver beenden?
Gibt es bei Quicksilver entsprechende Optionen? (Immerhin kann ich es ja per Quicksilver auch starten *G*)
4. Gibt es die Möglichkeit einer Art Kombination aus zweitens und drittens, d.h. kann man ein AppleScript derart gestalten, dass es das Lautstärke-Skript beendet, wenn es (bspw. flott über Quicksilver) ausgeführt wird?

Gruß,
Nemmi
 
Zu 1.: Bevor Du an iTunes etwas schickst, teste, ob es in der Prozesslist ist.
 
Code:
tell application "System Events"
	(name of every process) contains "iTunes"
end tell
Bringt Dich aber auch wieder nur bedingt weiter

Viele Grüße
 
Ich weiß nicht, wie oft am Tag Du Deine Systemlautstärke veränderst, aber ein Script, das nonstop im Hintergrund läuft und jede Sekunde checkt, ob System- und iTuneslautstärke übereinstimmen, halte ich nicht für sehr praktisch.

Anyway, der Link von little Pixel beschreibt, daß es technisch fast unmöglich ist, Dein Problem zu lösen.

Eine Alternative könnte sein, Deine Systemlautstärke ihrerseits über ein AppleScript zu steuern. Im gleichen Script (das du selbstverständlich auch über QuickSilver starten kannst) könntest Du dann checken, ob iTunes läuft und angepasst werden muß. So würdest Du Dir die Endlosschleife mit on idle ersparen.
(Und natürlich könntest Du als Ergänzung auch jedesmal iTunes über ein AS starten, das nach dem Start sofort die beiden Lautstärkewerte synct)

Ciao
Farid
 
Bringt Dich aber auch wieder nur bedingt weiter...

Verstehe ich jetzt ehrlich gesagt nicht.
Wenn iTunes nicht in der Prozessliste ist, wird halt nichts an iTunes geschickt.
Oder ist es jetzt so, daß iTunes "immer" gestartet wird (bei Deiner Abfrage)?
 
Hallo,

ich fasse nochmals zusammen:

- Doppelklick auf iTunes
- System erhält die Nachricht, dass iTunes gestartet wird
- iTunes wird mit all seinem Zeugs (Views, Windows, Frameworks usw.) gestartet
- System erhält die Nachricht, dass iTunes gestartet wurde

Das ganze funktioniert genau andersrum beim Beenden einer Anwendung.

Wenn jetzt ein AS fragt "läufst Du noch" dann ist das nur eine ungefähre Angabe, da die Zeit zwischen "wird" und "wurde" immer "ja" liefert.

"AppleEvent liefert eine Zeitüberschreitung"
Genau das ist dann der Fall.
Wenn die Anwendung, an die das AppleEvent geschickt wird, nicht offen ist, dann wird sie einfach gestartet.

halte ich nicht für sehr praktisch.
Ich auch nicht.

Viele Grüße
 
Verstehe. 'Erstens' fällt also flach.

Was ist mit den Szenarien unter 2. - 4.?

Nemmi
 
Wenn Du Dein Zeitintervall größer setzt, dann wird die "Kollision" unwahrscheinlicher.
Dann baue noch die Prüfung ein, die ich Dir gezeigt habe. Führe dann ein "quit" aus.

Viele Grüße
 
Zurück
Oben Unten