2010-09-15 7 views
5

Me pregunto cómo tener una alerta emergente en mi computadora (Mac OS X) cada hora. Pensé que escribir esto en Applescript sería bastante simple, pero no tengo experiencia en Applescript. GraciasCómo escribo Applescript que me dará una alerta emergente por hora

+0

Tutorial de Applescript para comenzar: http://homepage.mac.com/swain/Macinchem/Applescript/AppScript_tut/AppScrip_tut_1/appscript_tut_1.htm – FrustratedWithFormsDesigner

+1

@FrustratedWithFormsDesigner ¡Enlace muerto! –

Respuesta

6

El controlador básico para hacer cosas de forma regular en AppleScript es el controlador inactivo.

on idle 
display dialog "Go back to work" buttons "Work Harder" default button "Work Harder" 
return 3600 
end idle 

Este script se abrirá un cuadro de diálogo cuando se inicia la aplicación y luego cada 3.600 segundos después de pulsar el botón. Cualquiera que sea el número que devuelva el controlador inactivo será la cantidad de segundos antes de que se active el siguiente evento inactivo.

Si quiere que sea en la media hora y no en cada sesenta minutos, querría que la secuencia de comandos inactiva le devolviera un número diferente de segundos, tal vez 60, y luego verifique si está en el la parte correcta de la hora.

on idle 
if the minutes of the (current date) is 30 then 
    display dialog "Go back to work" buttons "Work Harder" default button "Work Harder" 
end if 
return 60 
end idle 

Esto sólo mostrará el cuadro de diálogo en la una y media. (Como Unix, el concepto de AppleScript de la fecha actual incluye la hora actual.)

En cada caso, desea guardar en el Editor de AppleScript como "Aplicación" y "Mantener abierto" para que responda a eventos inactivos de simplemente dejar de fumar después de correr. Y puede agregar la aplicación a su lista de "Elementos de inicio de sesión" en la preferencia del sistema "Cuentas" para que se ejecute automáticamente cuando inicie sesión.

+0

Gracias. Buenos nombres de botones – Kramer

+0

Si hubiera estado más despierto, habrían sido más como Animal Farm. –

+0

¿No sería más fácil simplemente restar los minutos de la fecha actual de sesenta, multiplicar eso por 60 y devolverlo en la segunda versión? De esta forma, no necesita verificar cada minuto. – 11684

0

Después de probar la solución Jerry, encontré un problema. Si su aplicación AppleScript no está "superada" en el momento del evento, es posible que obtenga un error de AppleScript y lo único que le llamará es el parpadeo del icone en el documento. Así que he hecho un pequeño cambio: Abrir el editor de AppleScript y escriba esto:

on idle 
    tell application "call_me" 
    activate 
    end tell 
    display dialog "Back to work" buttons "Work!" default button "Work!" 
    return 3600 
end idle 

Guardar la secuencia de comandos durante la selección de "Aplicación" en el menú inferior del selector de archivos y luego marcar "No dejar de fumar "(en francés" Ne pas quitter aprés l'exécution ") para que la aplicación permanezca activa incluso después del evento. Debe dar el nombre "call_me" a su aplicación o, si cambia el nombre, cambiar también este nombre en el código (indicar a la aplicación "xxxx" activar) Cada 3600 segundos, la aplicación se colocará en la parte superior y luego se mostrará caja de alerta.

Solo un punto: la primera vez que guarde la aplicación, Applescript le mostrará un selector y le preguntará "¿Dónde está call_me.app?" Simplemente cancele este selector y guarde.

Oh !! ¡Tengo que volver al trabajo!

Cuestiones relacionadas