Programm beenden, wenn es läuft, und wieder starten

Dann schieße das Programm ab:
Code:
tell application "System Events"
	if exists process "Last.fm" then
		[COLOR="Red"]do shell script "killall LastFM"[/COLOR]
		delay 2
		tell application "Last.fm" to activate
	else
		tell application "Last.fm" to activate
	end if
end tell
 
Verdammt! Das geht auch nicht :rolleyes:.

Nur die Symbolleiste kommt in den Vordergrund.

Das kann doch nicht sein, dass ich ein Programm nicht beenden kann.
Heißt der "System Events"-Manager bei mir vielleicht anders (Mac X 10.4).

Die Wartezeit kann ich noch so hoch einstellen. Er wartet nicht. Ich gehe davon aus, dass schon der vorige Schritt Fehler verursacht.

Danke, Grüße und gute Nacht
Tim ;)
 
Kopiere das Skript in den Skripteditor (in Programme) und klicke unten auf "Event-Protokoll". Klicke anschließend auf "Ausführen" und poste dann das Protokoll.
 
Wir sind weiter :).

Code:
tell application "System Events"
    exists process "Last.fm"
        false
end tell
tell application "Last.fm"
    activate
end tell
Es wird also nicht erkannt, dass Last.fm bereits läuft. Stört evtl. der Punkt?
 
Wesentlich, wenn Last.fm gerade nicht lief.

Was steht im Protokoll folgenden Skripts?
Code:
tell application "System Events"
	get process "Last.fm"
end tell
 
Tja, das gleiche. Auch hier wird Last.fm nicht erkannt:

Code:
tell application "System Events"
    get process "Last.fm"
        "„System Events“ hat einen Fehler erhalten: Prozess nicht gefunden."
 
Versuche es mit "LastFM" oder gleich
Code:
tell application "System Events"
	get name of every process
end tell

Last.fm sollte währenddessen laufen.
 
Endlich! Super! Danke! :cake:

Code:
tell application "System Events"
    if exists process "Lastfm" then
        tell application "Last.fm" to activate
        keystroke "s" using {command down}
        delay 5
        keystroke "p" using {command down}
    else
        tell application "Last.fm" to activate
    end if
end tell
Das Programm wird in der Aktivitäts-Anzeige mit dem Punkt aufgelistet.
Ohne Punkt bei "...if exists process "Lastfm" then..." gehts nur hier.


Vielen Dank für deine vielen Bemühungen!
Hast du selber Interesse an Last.fm gefunden? Denn dann hättest du immerhin auch ein kleines bisschen von diesem Erfolg ;).

Grüße
Tim

PS: Hast du einen Tipp für mich? Ich suche eine Wecksoftware, Freeware, bei der ich jeden Tag einzeln planen kann und ein Programm (Das Skript) ausführen kann?
 
Interessanterweise schert sich mein Mac nicht um den Punkt, er führt ohne Murren beide Varianten aus. Die Gnade der PPC-Macs :D

Edit:
Bei macupdate findest du sicher einen Scheduler für die Scripts. Den Mac kannst du in "Energie sparen" so einstellen, dass er zu vorgegebenen Uhrzeiten in den Ruhezustand geht und auch wieder daraus erwacht. Übrigens läuft hier Last.fm nach dem Ruhezustand selbständig wieder an.
 
Zuletzt bearbeitet:
Ein kleines Problem gibt es doch noch: Das Skript läuft super, die Keystrokes funktionieren nur, wenn Last.fm im Vordergrund ist.
Wenn Das Skript die Last.fm-Symbolleiste in den Vordergrund holt, sind die relevanten Tastenabkürzungen nicht verfügbar.

Edit 1:
Es ist nur das Last.fm Menü sichtbar (About, Einstellungen, Dienste, ausblenden, Beenden ...).
Wenn das Fenster sichtbar ist, sind auch die anderen Reiter (Ansicht, Extra und Benutzter) sichtbar.
 
...

Edit:
Bei macupdate findest du sicher einen Scheduler für die Scripts. Den Mac kannst du in "Energie sparen" so einstellen, dass er zu vorgegebenen Uhrzeiten in den Ruhezustand geht und auch wieder daraus erwacht. Übrigens läuft hier Last.fm nach dem Ruhezustand selbständig wieder an.
Ja, Last.fm spielt noch zirka eine Minute Musik. Diese wurde am Abend zuvor gepuffert, also schon runter geladen.

Danke! Ich begebe mich auf die Suche.
 
Richtig, bei geschlossenem Fenster reduzieren sich die Menüeinträge und daher funktionieren die betreffenden keystrokes nicht. Solange du das Programmfenster nicht schließt (ausblenden und minimieren sind unkritisch), solltest du das Skript benutzen. Andernfalls kannst du entweder das Skript aus #5 oder #8 mit der Änderung im Prozessnamen verwenden.

Bei mir läuft die Zwischenspeicherung neu an.
 
Okay, danke. Dann minimiere ich es einfach nur ;).

CronniX ist solch ein Scheduler.
7486_scr.png


Ich muss AppleScript lernen. Das kann man ja richtig vielfältig einsetzten! ;).
 
Und nun werde ich sogar sanft geweckt ;).

Code:
tell application "System Events"
    if exists process "Lastfm" then
        tell application "Last.fm" to activate
        keystroke "s" using {command down}
        delay 2
        keystroke "p" using {command down}
        delay 5
        set volume 0
        delay 5
        set volume 1
        delay 2
        set volume 2
        delay 2
        set volume 3
        delay 10
        set volume 4
        delay 10
        set volume 5
        delay 10
        set volume 6
        delay 10
        set volume 7
    else
        tell application "Last.fm" to activate
    end if
end tell
 
Etwas feingranularer:
Code:
repeat with x from 0 to 100 -- "100" entspricht volume "7"
		set volume output volume x
		delay 0.25 
	end repeat
;)
 
Zurück
Oben Unten