Programm starten bei beenden eines anderen Programmes

toellby

toellby

Aktives Mitglied
Thread Starter
Dabei seit
08.02.2007
Beiträge
226
Reaktionspunkte
2
Hallo LEute, ich bräucht mal eure Hilfe:

Ich hab zu Hause meinen Mac Mini als Media Center mit Plex laufen. Gestern bin ich wieder auf Sat umgestiegen und mir EyeTV zugelegt.

Jetzt wäre es natürlich klasse, da EyeTv (noch) nicht in Plex integriert wurde, wenn sich EyeTV starten würde, wenn Plex beendet wird und umgekehrt.

d.H., ich bräucht nen Skript oder eine Aktion, die im Hintergrund guckt, ob eine der beiden Anwendungen aktiv ist und wenn, die andere blockt bzw. bei Beendigung das andere startet.

Gibt's da sowas?

Nur mal als Anmerkung für die, denen es noch nicht aufgefallen ist: Ich hab keine grosse Ahnung von AS oder Automator, bei VBA hört bei mir das Wissen auf... :):(
 
Hallo toellby,

Deine Aufgabe ist gar nicht so einfach zu lösen, denn man kann mit AppleScript nicht einfach abfragen, ob ein Programm beendet wird. AppleScript kann sozusagen niemanden dazu fragen, es gibt keinen Notifier.

Man kann nur fragen, ob ein Programm gerade aktiv ist oder nicht. Aber das hilft ja in Deinem Fall nicht wirklich, denn das würde zu einem lustigen Programm-Karussell führen:

EyeTV aktiv, Plex nicht: EyeTV beenden, Plex starten
Plex aktiv, EyeTV nicht: Plex beenden, EyeTV starten
Und wieder von vorne...

Beide inaktiv: Was tun? Beide aktiv: Was tun?
 
Ja, ich hab sowas befürchtet.

Ich wollte am Wochenende mal versuchen, meine Logitech Fernbedienung und Remote Buddy zusammen zu bringen, und belege dann eine Taste auf der FB mit dem Startbefehl... oder so...
 
...

Hallo toellby,

eventuell kommt das hin:

Code:
property iCal : 0
property Mail : 0

on idle
   
    tell application "System Events"
        if iCal = 0 then
            if (get name of every process) does not contain "Mail" then
                tell application "iCal" to launch
                set iCal to 1
                set Mail to 0
            else
                return 0.1
            end if
        end if
       
        if Mail = 0 then
            if (get name of every process) does not contain "iCal" then
                tell application "Mail" to launch
                set Mail to 1
                set iCal to 0
            else
                return 0.1
            end if
        end if
       
    end tell
    return 0.1
   
end idle

ist eine Abwandlung von dem
https://www.macuser.de/threads/programm-mitstarten.80738/
Beachte auch die Hinweise im anderen Beitrag um das Skript unsichtbar im Hintergrund laufen zu lassen...

Gruß Andi

Nachtrag: Falls die Programme gleich in den Vordergrund sollen anstatt launch activate eintragen...
 
Zuletzt bearbeitet:
Hi Andi,

danke erstmal für Deine Hilfe.

Meine bescheidenen Script-Kenntnisse mal ausgepackt, vermute ich, dass das Skript überprüfen soll, ob in den gestarteten Anwendungen die App Mail oder iCal geöffnet ist. Und sobald eins der beiden geöffnet ist öffnet es keins bzw. wenn keins geöffnet ist halt das erste.

Jetzt hab ich folgendes Problem:
Ich bräuchte folgenden Arbeitsablauf: - keins der beiden Programme ist gestartet -> ich starte das gewünschte Programm (Plex / EyeTV) mit dem dazugehörigen Skript:
on idle
tell application "Plex" to launch
end tell
end idle
Wenn ich Plex beenden möchte, und stattdessen EyeTV starten möchte, müsste dass dann ja quasi folgender maßen aussehen:
on idle
tell application "Plex" to quit
tell application "EyeTV" to launch
end tell
end idle

und das ganze vice versa für halt das andere Programm...

oder wie?

Oder macht Dein Skript GENAU das schon, durch seine Anfrage
if (get name of every process) does not contain "Mail" then
??

Sorry, aber wie gesagt, totaler AppleScript Neuling. Im Studium hab ich mal ein wenig VBA gelernt, und damit is auch schon Schluss...
 
...

Hallo toellby,

das ist ein Beispielskript mit iCal und Mail weil ich weder Plex noch EyeTV habe. Es macht im Prinzip das was Du möchtest.

Es startet iCal wenn keins der beiden Programme (iCal/Mail) geöffnet ist und startet Mail wenn Du iCal beendest. Wenn Du dann Mail beendest, startet es wieder iCal usw. Es verhindert aber nicht wenn Du Mail trotzdem per Hand nachstartest.

Ich nehme an Du möchtest hauptsächlich Plex verwenden dann tauscht Du im Skript "iCal" zu "Plex" und "Mail" zu "EyeTV" - sollen die Programme im Vordergrund starten ersetze noch "launch" durch "activate"

Damit das Skript immer in einer Schleife läuft musst Du es im Skripteditor unter Ablage->Sichern unter...

Dateiformat: (Programm/Programm-Bundle)
Optionen: Nicht automatisch beenden

speichern.

Bei der Version als Programm-Bundle hast Du noch die Möglichkeit das Skript unsichtbar im Hintergrund (ohne Docksymbol) laufen zu lassen.
(siehe Link im ersten Beitrag)

Um beide Programme (Plex/EyeTV) zu beenden musst Du das Skriptprogramm zuerst beenden und dann das letzte offene von (Plex/EyeTV)

Gruß Andi
 
  • Gefällt mir
Reaktionen: toellby
Super... ich danke Dir....
 
Zurück
Oben Unten