Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15
  1. #1
    Schö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

  2. #2
    Golden Noble Avatar von Bananenbieger
    Registriert
    08.2005
    Ort
    In der Cloud
    Beiträge
    21.434
    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.
    Vorsicht! 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.

  3. #3
    Schö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.

  4. #4
    Galloway Pepping Avatar von fyysh
    Registriert
    01.2010
    Ort
    Rheinknie
    Alter
    33
    Beiträge
    1.348
    Code:
    tell application "System Events"
    	if (name of processes contains "VLC") then
    		tell me to do shell script "killall VLC"
    	end if
    end tell
    Edit:
    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.

  5. #5
    Schöner von Nordhausen
    Themenstarter

    Registriert
    10.2008
    Beiträge
    324
    Vielen Dank! Damit wird es klappen.

    Gruss dawiinci

  6. #6
    Galloway Pepping Avatar von fyysh
    Registriert
    01.2010
    Ort
    Rheinknie
    Alter
    33
    Beiträge
    1.348
    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.
    Solange du killall nicht ein anderes Signal mitgibst, schickt es (SIG)TERM an den Prozess. Das passt schon.
    The cause of the problem is:
    Don't worry; it's been deprecated.
    The new one is worse.

  7. #7
    Schö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?

  8. #8
    Galloway Pepping Avatar von fyysh
    Registriert
    01.2010
    Ort
    Rheinknie
    Alter
    33
    Beiträge
    1.348
    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:
    Solange du killall nicht ein anderes Signal mitgibst, schickt es (SIG)TERM an den Prozess. Das passt schon.
    Wenn man das aus der shell macht, wird's von VLC als absturz interpretiert. also wäre sowas ganz nett:
    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.

  9. #9
    Charlamowsky Avatar von Rastafari
    Registriert
    03.2005
    Beiträge
    12.966
    Zitat Zitat von fyysh Beitrag anzeigen
    Solange du killall nicht ein anderes Signal mitgibst, schickt es (SIG)TERM an den Prozess. Das passt schon.
    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.

  10. #10
    Galloway Pepping Avatar von fyysh
    Registriert
    01.2010
    Ort
    Rheinknie
    Alter
    33
    Beiträge
    1.348
    Not nice.
    Ja... auch grad gefunden. Also niiiicht.

    Thx for pointing this out.
    The cause of the problem is:
    Don't worry; it's been deprecated.
    The new one is worse.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •