Gibt es eine Möglichkeit, die Häufigkeit zu begrenzen, mit der Sie eine Anwendung starten können?

Auf meinem Telefon erfreue ich mich an einer neuen Optimierung namens MailStop, deren einziger Zweck darin besteht, meinen Reflex, meine E-Mails viel zu oft zu überprüfen, einzuschränken. Ich habe es so eingestellt, dass ich die Mail-App fünf Stunden lang nicht starten darf, wenn ich sie bereits gestartet habe. Dies hatte einen großen Einfluss auf meinen Mail-Checking-Missbrauch. Ich muss innehalten und mich daran erinnern, dass ich es viel zu oft jedes Mal überprüfe, wenn ich versuche, es während dieser Stunden zu öffnen.

Es gibt andere Möglichkeiten, den Missbrauch der Mail-App mit dieser Anwendung einzuschränken, aber meine Frage ist dieselbe wie der Titel: Gibt es eine Möglichkeit, die Häufigkeit zu begrenzen, mit der Sie eine Anwendung auf dem Mac starten können?

Schlagen Sie vor, die Erklärung zu kürzen, um sie prägnanter zu machen. Zum Beispiel: „Ich finde, dass ich Mail.app zu oft verwende. Gibt es eine Möglichkeit, es unter Mac OS X so zu beschränken, dass es nicht mehr als einmal alle n Stunden gestartet wird?“

Antworten (4)

Sie können dies mit AppleScript tun:

1. Öffnen Sie den AppleScript-Editor

2. Fügen Sie folgenden Code ein:

Eigenschaft appName : "Mail"
Eigenschaft minSecsBetweenLaunches : 600 - Sekunden
Property CheckEvery: 5 -- Sekunden

-- ÄNDERN SIE NACH DIESER ZEILE NICHT, WENN SIE NICHT SICHER SIND --

Eigenschaft lastSeenOpen : ""
Eigenschaft lastMailState : ""

auf Lauf
    Leerlauf
Endlauf

im Leerlauf
    mein Scheck ()
    return checkEvery - Überprüfung alle n Sekunden
Leerlauf beenden

auf check()
    Weisen Sie die Anwendung "Finder" an, process_names auf den Namen von Prozessen zu setzen
    if (lastMailState ist "") then
        -- Erster Lauf
        setze lastMailState auf (processes_names enthält appName)
        wenn lastMailState dann
            setze lastSeenOpen auf das aktuelle Datum
        Ende wenn
    anders
        if (processes_names enthält appName) then
            if (lastMailState ist false) then
                -- App gerade gestartet
                setze lastMailState auf true
                if (lastSeenOpen ist nicht "") then
                    -- Wurde bereits gestartet, prüfen Sie, ob der Start erlaubt ist
                    setze timeLeft auf minSecsBetweenLaunches - ((aktuelles Datum) - lastSeenOpen)
                    if (timeLeft > 0) dann
                        Sagen Sie der Anwendung appName, dass sie beendet werden soll
                        aktivieren Sie
                        Anzeigedialog "Warten Sie " & timeLeft & " Sek., bevor Sie " & appName & " erneut öffnen."
                    Ende wenn
                Ende wenn
            Ende wenn
            setze lastSeenOpen auf das aktuelle Datum
        anders
            if (lastMailState ist wahr) then
                -- App einfach beendet
                setze lastMailState auf false
            Ende wenn
        Ende wenn
    Ende wenn
Prüfung beenden

3. Passen Sie die Einstellungen an

Die 3 ersten Zeilen des Skripts können an Ihre Bedürfnisse angepasst werden. Überprüfen Sie standardmäßig alle 5 Sekunden, ob Mail seit 10 Minuten (das sind 600 Sekunden) nicht geöffnet wurde.

4. Erstellen Sie die App

Menü Datei > Exportieren

  • Wählen Sie den App-Namen und das Ziel
  • auswählen, um als Anwendung zu exportieren
  • "Geöffnet bleiben..." ankreuzen

5. Vom Dock ausblenden

Suchen Sie im Finder nach der gerade exportierten App, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Paketinhalt anzeigen“. Öffnen Sie dann „Info.plist“ im Ordner „Contents“ in TextEdit und fügen Sie vor dem letzten </dict> der Datei Folgendes ein:

<key>LSBackgroundOnly</key>
<string>1</string>

Zur Info, nach der Bearbeitung sieht das Ende meiner Datei so aus:

[...]
        <string>Ereignisprotokoll</string>
    </dict>
    <key>LSBackgroundOnly</key>
    <string>1</string>
</dict>
</plist>

Und natürlich speichern.

6. Legen Sie Ihre App als Startobjekt fest

Systemeinstellungen > Benutzer > ...

Ist das Ihre Originalarbeit? Ich dachte, ich hätte dieses Skript in der Antwort auf eine andere ähnliche Frage gesehen.
Ja, meine Arbeit. Natürlich können einige Teile an anderer Stelle gefunden werden, z. B. wie man eine Applescript-App vor dem Dock verbirgt oder wie man erkennt, ob eine Anwendung läuft. Aber ich habe diesen Code geschrieben, um Ihre Frage zu beantworten.
Gosmond … spielt es wirklich eine Rolle?

Es wäre ziemlich einfach für jemanden, eine Anwendung zur Steuerung von Dienstprogrammen in OS X zu schreiben, und es sieht so aus, als hätte jemand dies bereits getan. Schauen Sie sich den Mac-App-Blocker an. Es verfügt über eine Granularität pro App und eine Einschränkung nach Zeitplan. Es ist derzeit nicht möglich, eine App auf X Starts pro Stunde / pro Tag zu beschränken.

Ich habe diese Feature-Anfrage an den Entwickler per E-Mail gesendet:

Feb. 20, 2013
Can you add the ability to limit an application to launching  x number of 
times per hour, per day, or per week?  And, related, to limit an app to 
launching *no more than* once every x hours, days, or weeks?

Habe diese Antwort bekommen:

Feb. 21, 2013
I have had a few other requests along the same lines. Perhaps it would be 
a good idea to add this kind of functionality. As Mac App Blocker has 
progressed over the past year, it has become more feature rich and, 
possibly a little more complicated. As it is, we're trying to fulfill 
more requests while keeping the app simple to use. I like your idea and I 
would like to add something to MAB for these types of options.
I will definitely add this to our growing list of feature requests.
Hopefully, we'll get this added in a (near) future release.

Ken
<censored>@<censored>.com
KnewSense, LLC

Sehen Sie sich diese App in 6 Monaten oder einem Jahr an, vielleicht wird sie hinzugefügt.


Zu den letzten Optionen gehören das Gießen von Epoxidharz in die Tastatur, das Anlegen von Handschellen an den problematischen Benutzer oder das Unterbrechen der Stromversorgung im Gebäude.

Aber sie könnten sich jederzeit ein anderes Eingabegerät besorgen, in ein anderes Gebäude gehen oder, wenn sie mit Handschellen gefesselt sind, ein iPad mit ihrem Gesicht bedienen. Einzige wirkliche Lösung: Löschen Sie die MX-Einträge aus der DNS-Konfiguration seines Mailhosts.
Ich bin mit Ken in Kontakt geblieben und es scheint in der neuesten Version zu sein.

Ja, es heißt Willpower 1.0. :-)

Im Ernst, das einzige, was mir einfällt, ist die Kindersicherung, die bestimmte Aktionen nach Tageszeit einschränken kann, aber ich glaube nicht, dass Sie das wollen. Es gibt wahrscheinlich andere Apps, die entwickelt wurden, um die Aktivitäten von Kindern auf Macs einzuschränken, die möglicherweise eine feinere Steuerung haben.

In der gleichen Zeile wie @Kick-McElhearn könnten Sie eine Kindersicherung einrichten, um einige Fenster zum Abrufen von E-Mails zu haben, und Sie könnten Personen, die Ihnen E-Mails senden, darüber informieren, dass Sie diese Fenster tatsächlich erzwingen.