Esta ha sido una experiencia de aprendizaje para mí. Todo sale bien, lógicamente, a mí en esta secuencia de comandos/ plist pero algo no está correcto. Todo funciona, pero, a continuación, la secuencia de comandos se ejecuta cada minuto que se está volviendo molesto ya que me voy a abrir un par de programas en la secuencia de comandos. Si al escribir código es frustrante como cambia la ventana activa.
Nota, este es mi primer applescript y plist ejercicio, así que siéntase libre para criticar mi código. El objetivo de la secuencia de comandos es programarse para que se ejecute dos veces al día (2 plists) - en la mañana cambio mi estado IM disponibles, abrir algunos programas y activar una cuenta de correo electrónico. En la noche, cambio de estado, deshabilitar el correo electrónico.
Dado que se trata de volver a correr yo pensé que era simplemente el plist, pero en comparación con otras plantillas para realizar una tarea que se repite una vez al día que se comprueba a mí.
<plist version="1.0">
<dict>
<key>Label</key>
<string>RMWEBENABLE</string>
<key>ProgramArguments</key>
<array>
<string>/disablemail.app/Contents/MacOS/applet</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>2</integer>
</dict>
</dict>
</plist>
Así que estoy asumiendo que en mi ignorace tengo algo que no se haya podido cerrar una instrucción if o somethign se acaba de hacer ineffeciently. Aquí está la secuencia de comandos.
set offTime to 17
set onTime to 9
set dayOfWeek to weekday of (current date)
set theHour to get the (hours of (current date))
if theHour ≥ offTime or dayOfWeek = Saturday or dayOfWeek = Sunday then
#LEAVE ME ALONE!!!!
tell application "Mail"
set enabled of account "mailbox" to false
end tell
tell application "Messages"
set status to invisible
end tell
tell application "Microsoft Lync"
quit
end tell
else if theHour ≥ onTime then
#I'm available for contact
tell application "Mail"
set enabled of account "mailbox" to true
end tell
tell application "Messages"
set status to available
end tell
tell application "Microsoft Lync"
activate
end tell
tell application "Firefox"
activate
end tell
tell application "Coda 2"
activate
end tell
tell application "Google Chrome"
activate
end tell
end if
Supongo que podría hacer un valor absoluto decir si por el contrario, theHour = 8 y theMinute = 2 entonces
pero prefiero la forma en que está ahora, ya que Mi equipo puede estar apagado cuando este está programado para ejecutarse, y yo creo que esto se ejecute en wake, o tal vez fue un útil efecto secundario de la repetición... siempre puedo cambiar el plist para ejecutar en el arranque así.