¿Hay alguna forma de limitar la frecuencia con la que puede iniciar una aplicación?

En mi teléfono, estoy disfrutando de un nuevo ajuste llamado MailStop cuyo único propósito es limitar mi reflejo de revisar mi correo con demasiada frecuencia. Lo configuré para que no me permita iniciar la aplicación Mail durante cinco horas una vez que ya la he iniciado. Esto ha tenido un gran impacto en mi abuso de verificación de correo. Me detengo y recuerdo que lo reviso con demasiada frecuencia cada vez que trato de abrirlo durante estas horas.

Hay otras formas de limitar el abuso de la aplicación Mail con esta aplicación, pero mi pregunta es la misma que la del título: ¿Hay alguna forma de limitar la frecuencia con la que puede iniciar una aplicación en la Mac?

Sugiera acortar la explicación para que sea más concisa. Por ejemplo, "Me parece que uso Mail.app con demasiada frecuencia. ¿Hay alguna forma de limitarlo para que no se inicie más de una vez cada n horas, en Mac OS X?"

Respuestas (4)

Puedes hacer esto usando AppleScript:

1. Abra el Editor de AppleScript

2. Pegue el siguiente código:

propiedad appName: "Correo"
propiedad minSecsBetweenLaunches: 600 - segundos
propiedad checkEvery: 5 - segundos

-- NO MODIFIQUE DESPUÉS DE ESTA LÍNEA SI NO ESTÁ SEGURO --

propiedad lastSeenOpen : ""
propiedad lastMailState: ""

en marcha
    inactivo
carrera final

en reposo
    mi cheque()
    volver checkEvery -- comprobar cada n segundos
terminar inactivo

en cheque ()
    Dile a la aplicación "Finder" que establezca los nombres de los procesos en el nombre de los procesos.
    si (último estado de correo es "") entonces
        -- Primer intento
        establezca lastMailState en (processes_names contiene appName)
        si último estado de correo entonces
            establecer lastSeenOpen en la fecha actual
        terminara si
    demás
        si (processes_names contiene appName) entonces
            si (lastMailState es falso) entonces
                -- Aplicación recién iniciada
                establecer lastMailState en verdadero
                si (lastSeenOpen no es "") entonces
                    -- Ya ha sido lanzado, verifique si el lanzamiento está permitido
                    establecer timeLeft a minSecsBetweenLaunches - ((fecha actual) - lastSeenOpen)
                    si (tiempo restante > 0) entonces
                        decirle a la aplicación appName que salga
                        activar
                        mostrar el cuadro de diálogo "Esperar" & timeLeft & " segundos antes de abrir " & appName & " de nuevo".
                    terminara si
                terminara si
            terminara si
            establecer lastSeenOpen en la fecha actual
        demás
            si (lastMailState es verdadero) entonces
                -- La aplicación acaba de salir
                establecer lastMailState en falso
            terminara si
        terminara si
    terminara si
cheque final

3. Ajustar la configuración

Las 3 primeras líneas del guión se pueden editar para adaptarse a sus necesidades. Por defecto, comprueba cada 5 segundos si Mail no se ha visto abierto desde hace 10 min (que son 600 segundos).

4. Crea la aplicación

Menú Archivo > Exportar

  • Elija el nombre de la aplicación y el destino
  • seleccione para exportar como aplicación
  • marque "permanecer abierto..."

5. Esconderse del muelle

En el Finder, busque la aplicación que acaba de exportar, luego haga clic derecho sobre ella y seleccione "Mostrar contenido del paquete". Luego abra "Info.plist" de la carpeta "Contenido" en TextEdit y, antes del último </dict> del archivo, pegue:

<key>LSBackgroundOnly</key>
<cadena>1</cadena>

Para obtener información, después de la edición, el final de mi archivo se ve así:

[...]
        <string>registro de eventos</string>
    </dict>
    <key>LSBackgroundOnly</key>
    <cadena>1</cadena>
</dict>
</lista>

Y guardarlo por supuesto.

6. Configure su aplicación como elemento de inicio

Preferencias del sistema > Usuarios > ...

¿Es este tu trabajo original? Me pareció ver este guión publicado en la respuesta a otra pregunta similar.
Sí, mi trabajo. Por supuesto, algunas partes se pueden encontrar en otros lugares, como por ejemplo, cómo ocultar una aplicación de applescript del muelle o cómo detectar si una aplicación se está ejecutando. Pero he escrito este código para responder a tu pregunta.
gosmond... ¿realmente importa?

Sería bastante fácil para alguien escribir el uso de una aplicación de control de utilidades en OS X, y parece que alguien ya lo ha hecho. Echa un vistazo a Mac App Blocker. Tiene granularidad por aplicación y restricción por horario. Actualmente no tiene la capacidad de limitar una aplicación a X lanzamientos por hora o por día.

Envié por correo electrónico esta solicitud de función al desarrollador:

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?

Recibí esta respuesta:

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

Revise esa aplicación en 6 meses o un año, tal vez se agregue.


Las opciones de última hora pueden incluir verter epoxi en el teclado, esposar al usuario problemático o desconectar la red eléctrica del edificio.

Pero siempre podrían obtener un dispositivo de entrada diferente, ir a otro edificio o, si están esposados, operar un iPad con la cara. La única solución real : eliminar los registros MX de la configuración DNS de su host de correo.
Me he mantenido en contacto con Ken y parece estar en la última versión.

Sí, se llama Willpower 1.0. :-)

En serio, lo único que se me ocurre es el control parental, que puede limitar ciertas acciones según la hora del día, pero no creo que eso sea lo que quieres. Probablemente haya otras aplicaciones diseñadas para limitar la actividad de los niños en Mac que podrían tener controles más detallados.

En la misma línea que @Kick-McElhearn, podría configurar controles parentales para tener algunas ventanas para revisar el correo electrónico, y podría informar a las personas que le envían correos electrónicos que, de hecho, está aplicando esas ventanas.