Überprüfen, ob ein Programm schon läuft und Programm aktivieren

  • Überprüfen, ob ein Programm schon läuft und Programm aktivieren

    Einen hab ich noch :)

    a) Wie kann ich mit AppleScript überprüfen, ob ein Programm schon läuft? Ich hab mir für die IR-Fernbedienung ein sleep-Script geschrieben. In dem Script soll den Programmen iTunes, VLC und DVD-Player ein stop-Kommando gesendet werden. Aber NUR DANN, wenn sie auch wirklich laufen, denn sonst werden sie ja gestartet, damit sie ein stop gesendet bekommen.

    Derzeit behelfe ich mir damit, mir mit Hilfe eines Shellaufrufes (hab ich jetzt nicht im Kopf) die pid des jeweiligen Programmes geben zu lassen. Nur wenn es eine pid gibt, wird das Programm auch "angetellt".

    Wie mache ich das mit AppleScript?



    b) Wie kann ich ein (schon laufendes) Programm anweisen aktiv zu werden (also den Fokus zu bekommen)? Alle meine Versuche sind bisher leider gescheitert.
  • RE: Überprüfen, ob ein Programm schon läuft und Programm aktivieren

    Original von Agrajag
    ...
    b) Wie kann ich ein (schon laufendes) Programm anweisen aktiv zu werden (also den Fokus zu bekommen)? Alle meine Versuche sind bisher leider gescheitert.

    tell application "Safari" to activate. Fuktioniert bei mir jedenfalls.
    There are 10 kinds of people in the world - those who understand binary
    and those who don't.
  • RE: Überprüfen, ob ein Programm schon läuft und Programm aktivieren

    In welchem Dictionary finde ich denn "activate"? In den "StandardAdditions" und in den "System Events" taucht activate gar nicht auf. Im PDF "AppleScript Language Guide" aus den DevDocs steht auch nichts darüber.

    Welche Dictionaries, die bei OSX dabei sind, gibt es denn noch? Irgendwo muss "activate" ja auftauchen. Welche Erweiterungen sind noch empfehlenswert?

    Die Dokus, die ich bisher gefunden habe, sind nicht sehr ergiebig. So hab ich immer noch keine Ahnung, ob man einem AppleScript einen Parameter mitgeben kann, oder nicht. Nur weil es nicht erwähnt wird, kann es das ja trotzdem geben (siehe activate). Ich hab auch noch keinen Hinweis darauf, wie ich mit AS-eigenen Mitteln überprüfen kann, ob ein Programm läuft.
  • Ich gehe derzeit schon den Weg über die Shell (mit ps), um zu ermitteln ob ein Programm läuft. Leiter klappt es derzeit nur, wenn ich nicht zusätzlich zu iTunes z.B. noch "iTunes Timer" (oder so ähnlich) benutzen würde. Dann bekomme ich ich einen String mit zwei PIDs in zwei Zeilen. Ich müsste mir noch mal ausdenken, wie ich nochmal überprüfe, ob eine PID wirklich zu iTunes gehört.

    Eine reine AS-Lösung wäre also nicht schlecht.