C'è un modo per limitare la frequenza con cui è possibile avviare un'applicazione?

4

Sul mio telefono, mi sto godendo un nuovo tweak chiamato MailStop il cui unico scopo è limitare il mio riflesso di controllare la mia posta troppo spesso. L'ho impostato per non permettermi di avviare l'app Mail per cinque ore dopo averlo già avviato. Questo ha avuto un grande impatto sulla mia posta controllando l'abuso. Mi fermo e ricordo che lo sto controllando troppo spesso ogni volta che cerco di aprirlo durante queste ore.

Ci sono altri modi per limitare l'abuso dell'applicazione Mail con questa applicazione, ma la mia domanda è uguale al titolo: esiste un modo per limitare la frequenza con cui puoi avviare un'applicazione sul mac?

    
posta andersmoldin 18.02.2013 - 12:20
fonte

4 risposte

6

Puoi farlo usando AppleScript:

1. Apri l'editor di AppleScript

2. Incolla il seguente codice:

property appName : "Mail"
property minSecsBetweenLaunches : 600 -- seconds
property checkEvery : 5 -- seconds

-- DO NOT MODIFY AFTER THIS LINE IF NOT SURE --

property lastSeenOpen : ""
property lastMailState : ""

on run
    idle
end run

on idle
    my check()
    return checkEvery -- check every n seconds
end idle

on check()
    tell application "Finder" to set processes_names to name of processes
    if (lastMailState is "") then
        -- First run
        set lastMailState to (processes_names contains appName)
        if lastMailState then
            set lastSeenOpen to current date
        end if
    else
        if (processes_names contains appName) then
            if (lastMailState is false) then
                -- App just started
                set lastMailState to true
                if (lastSeenOpen is not "") then
                    -- Already been launched, check if launch allowed
                    set timeLeft to minSecsBetweenLaunches - ((current date) - lastSeenOpen)
                    if (timeLeft > 0) then
                        tell application appName to quit
                        activate
                        display dialog "Wait " & timeLeft & " sec. before opening " & appName & " again."
                    end if
                end if
            end if
            set lastSeenOpen to current date
        else
            if (lastMailState is true) then
                -- App just quit
                set lastMailState to false
            end if
        end if
    end if
end check

3. Regola le impostazioni

Le 3 prime righe dello script possono essere modificate in base alle tue esigenze. Per impostazione predefinita, controlla ogni 5 secondi se Mail non è stato visto aperto da 10 minuti (ovvero 600 secondi).

4. Crea l'app

Menu File > Esporta

  • Scegli il nome dell'app e amp; destinazione
  • seleziona per esportare come applicazione
  • seleziona "rimani aperto ..."

5. Nascondi dal dock

Nel Finder, trova l'app appena esportata, quindi fai clic con il pulsante destro del mouse su di essa e seleziona "Mostra contenuto pacchetto". Quindi apri "Info.plist" della cartella "Contents" in TextEdit e, prima dell'ultimo < / dict > del file, incolla:

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

Per informazioni, dopo la modifica, la fine del mio file assomiglia a:

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

E, naturalmente, salvalo.

6. Imposta la tua app come elemento di avvio

Preferenze di sistema > Utenti > ...

    
risposta data 22.02.2013 - 16:31
fonte
4

Sarebbe abbastanza facile per qualcuno scrivere un'app per l'utilità di controllo in OS X, e sembra che qualcuno lo abbia già fatto. Dai un'occhiata a Mac App Blocker. Ha granularità per-app e restrizioni per programma. Al momento non ha la possibilità di limitare un'app a X lancia per ora / per giorno.

Ho inviato per email questa richiesta di funzionalità allo sviluppatore:

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?

Hai questa risposta:

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

Controlla su quell'app tra 6 mesi o un anno, forse verrà aggiunta.

Le opzioni last-ditch potrebbero includere versare resina epossidica nella tastiera, ammanettare l'utente problematico o rimuovere l'alimentazione di rete dall'edificio.

    
risposta data 21.02.2013 - 09:27
fonte
2

Sì, è chiamata Willpower 1.0. : -)

Seriamente, l'unica cosa che posso pensare è Parental Control, che può limitare determinate azioni in base all'ora del giorno, ma non penso che sia ciò che desideri. Ci sono probabilmente altre app progettate per limitare l'attività dei bambini sui Mac che potrebbero avere controlli più raffinati.

    
risposta data 21.02.2013 - 08:53
fonte
0

Nella stessa riga di @ Kick-McElhearn, puoi impostare il controllo genitori per avere un paio di finestre per controllare la posta, e potresti informare le persone che ti inviano email che stai effettivamente facendo rispettare quelle finestre.

    
risposta data 22.02.2013 - 16:06
fonte

Leggi altre domande sui tag