Prüfe doch vorher einfach ab, ob VLC installiert ist bzw. der Prozess läuft.
Alternativ: "quit saving no"
Schau Dir doch mal im Skript-Editor die Bibliothek "System Events" und dort die "Standard Suite" an.
Ergebnis 1 bis 10 von 15
- 11.02.2011, 19:48 #1Schöner von Nordhausen
Themenstarter
- Registriert
- 10.2008
- Beiträge
- 324
killall nur ausführen, wenn Programm vorhanden
Wenn ich mit "killall VLC" das Programm beende, dann funktioniert das Skript. Falls ich aber VLC nicht installiert habe wird das Skript unterbrochen. Wie kann ich definieren, dass der Befehl nur dann ausgeführt wird, wenn VLC vorhanden ist? (/Applications/VLC.app)
Wie "gefährlich" ist es eigentlich den Shell-Befehl killall statt des AppleScript-Befehls quit zu verwenden? Ich brauche den Befehl, weil ich auch bei einer Nachfrage beenden möchte. Der Mac ist unbeaufsichtigt und ich kenne keine andere Möglichkeit.
Danke
- 11.02.2011, 20:54 #2Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.
- 11.02.2011, 21:58 #3Schöner von Nordhausen
Themenstarter
- Registriert
- 10.2008
- Beiträge
- 324
Ja, ich dachte an so etwas:
if /Applications/VLC.app exists
killall VLC
else
Falls VLC nicht offen ist, ist es kein Problem, wichtig ist nur, dass es vorhanden ist. Die genaue Syntax habe ich noch nicht gefunden.
- 11.02.2011, 22:38 #4Edit:Code:
tell application "System Events" if (name of processes contains "VLC") then tell me to do shell script "killall VLC" end if end tell
agh.. ich wollte Vorschau klicken
Wenn du nur checken willst, ob es existiert (nicht, ob es läuft)
Code:--mit apsolutem pfad tell application "Finder" if exists (POSIX file "/Applications/VLC.app") then tell me to display dialog "wunderbar" end if end tell --mittels bundle identifier (steht in VLC.app/Contents/Info.plist => "org.videolan.vlc"), falls vlc nicht in /Applications liegt try set bundleIdentifier to "org.videolan.vlc" tell application "Finder" to set bundlePosixPath to POSIX path of ((application file id bundleIdentifier) as alias) display dialog "vlc ist in " & bundlePosixPath on error display dialog "vlc nix gefundt" end try
Geändert von fyysh (11.02.2011 um 22:52 Uhr)
The cause of the problem is:
Don't worry; it's been deprecated.
The new one is worse.
- 11.02.2011, 22:56 #5Schöner von Nordhausen
Themenstarter
- Registriert
- 10.2008
- Beiträge
- 324
Vielen Dank! Damit wird es klappen.
Gruss dawiinci
- 11.02.2011, 23:05 #6Solange du killall nicht ein anderes Signal mitgibst, schickt es (SIG)TERM an den Prozess. Das passt schon.Wie "gefährlich" ist es eigentlich den Shell-Befehl killall statt des AppleScript-Befehls quit zu verwenden? Ich brauche den Befehl, weil ich auch bei einer Nachfrage beenden möchte. Der Mac ist unbeaufsichtigt und ich kenne keine andere Möglichkeit.The cause of the problem is:
Don't worry; it's been deprecated.
The new one is worse.
- 11.02.2011, 23:13 #7Schöner von Nordhausen
Themenstarter
- Registriert
- 10.2008
- Beiträge
- 324
Sehr gut, heisst das auch, dass laufende Aktionen deaktiviert werden und zB. temporäre Dateien gelöscht werden und sich das Programm sozusagen ordnungsgemäss verabschiedet?
Was hat es eigentlich mit dem tell me to auf sich? Was ist genau der Unterschied zu dem Befehl alleine?
- 11.02.2011, 23:21 #8
Oh mann, ich bin heute verpeilt ey. ^^
Ich dachte ich bin bei Applescript.
Passup, in der shell:
killall -d VLC && killall vlc
Das killall -d beendet noch nix, sondern zeig nur, was gemacht werden würde. Wenn nix da ist zum killen, dann beendet es mit fehler, also würde das nachstehende killall VLC nie ausgeführt werden.
UND:
Wenn man das aus der shell macht, wird's von VLC als absturz interpretiert. also wäre sowas ganz nett:Solange du killall nicht ein anderes Signal mitgibst, schickt es (SIG)TERM an den Prozess. Das passt schon.
killall -d VLC && osascript -e 'tell app "vlc" to quit'
Nur dummerweise funktioniert das bei VLC nicht richtig.
Mach's mit Applescript.
EDIT:
killall -d VLC && killall VLC scheint doch zu funktionieren. Kein plan was ich da grad veranstaltet hab.
Ich geh mal schlafen
The cause of the problem is:
Don't worry; it's been deprecated.
The new one is worse.
- 11.02.2011, 23:26 #9
Das passt nicht. Jedenfalls nicht so ganz.
Bei VLC wirds keine Probleme geben, bei anderen Programmen aber wird das Ausbleiben der im Programm vorgesehenen Exit-Prozeduren zu Merkwürdigkeiten führen. Ein SIGTERM auf ein Carbon- oder Cocoa-Programm kommt einem Absturz der App gleich (bzw einem erzwungenen "Sofort beenden"). Not nice.
- 11.02.2011, 23:43 #10Ja... auch grad gefunden. Also niiiicht.Not nice.
Thx for pointing this out.The cause of the problem is:
Don't worry; it's been deprecated.
The new one is worse.


Zitieren

