Dauerhaft laufendes Skript

MacNoob20

Mitglied
Thread Starter
Registriert
30.01.2020
Beiträge
78
Hi,

bisher habe ich mit dem Automator/AppleScript nur Schnellaktionen genutzt, die einmal liefen, wenn ich eine Tastenkombination habe.

Jetzt hätte ich gerne ein Programm, dass permanent läuft bis ich es beende. Beispielsweise eines, dass mir alle 5 Minuten die Uhrzeit sagt:

Code:
repeat
    set zeit to time string of (current date)
    say zeit
    delay 5*60
end repeat

Das ganze soll sich natürlich auch beenden lassen. Mein erster Gedanke war ein display dialog mit einem "Beenden" Knopf. Aber der die Dialogbox hält ja die Ausführung des Codes an.

Habt ihr Ideen? Danke!
 

oneOeight

Aktives Mitglied
Registriert
23.11.2004
Beiträge
57.674
Eventuell das Aufrufen alle 5 Minuten durch launchd machen lassen?

Man kann den Dialog auch automatisch schließen lassen, mit giving up after.
 

MacNoob20

Mitglied
Thread Starter
Registriert
30.01.2020
Beiträge
78
Danke für die schnelle Antwort!
Ich habe ir launchd mal angesehen, aber das würde das Programm von außen aufrufen. Ich definiere vorher aber auch noch Parameter, die steuern, wie groß die Intervalle (also die 5 Minuten) sind.

Giving up after ist glaube ich genau das Gegenteil von dem, was ich suche: Es soll ja immer weiter laufen bis jemand einen Knopf drückt. Es muss auch nicht unbedingt in einem Dialog sein. In der Menüleiste wäre auch ok.
 

MacNoob20

Mitglied
Thread Starter
Registriert
30.01.2020
Beiträge
78
Das wäre auch eine Lösung, Danke!

Tatsächlich habe ich gerade festgestellt, dass das Zahnrad, das die Ausführung der Schnellaktion anzeigt für meine Zwecke vollkommen genügt. Ich hatte das beim Testen im Automator nur nicht gesehen, weil es nur kommt, wenn ich den Dienst ausführe...
 

MacNoob20

Mitglied
Thread Starter
Registriert
30.01.2020
Beiträge
78
Interessant, danke! Aber nein, das war nur das erst-beste Minimalbeispiel, das mir einfiel :)
 

efx

Mitglied
Registriert
21.01.2005
Beiträge
791
Du kannst die in Automator erstellten Abläufe auch als App speichern. Dann kannst du das öffnen und schließen über das Icon im Dock.
 

mausfang

Aktives Mitglied
Registriert
04.08.2016
Beiträge
1.992
AppleScript:
property timeDelay : 60
property initialCheck : true

on appOpen(appName)
    tell application "System Events" to set appNameIsRunning to exists process appName
    return appNameIsRunning
end appOpen

on idle
    if not initialCheck then
        set appStatusOpen to appOpen("TextEdit")
        if appStatusOpen then
            tell application "Monitor_App_Running"
                activate
                beep
                display dialog "Another Minute with TextEdit opened passed by"
            end tell
        end if
    end if
    set initialCheck to false
    return timeDelay
end idle

Das als App mit dem Namen "Monitor_App_Running" speichern mit folgenden Settings:

Bildschirmfoto 2021-04-03 um 22.33.06.png

Beenden dann über:

Bildschirmfoto 2021-04-03 um 22.34.53.png
 
Oben