Esta ha sido una experiencia de aprendizaje para mí. Todo me sale lógicamente en este script / plist pero algo no está bien. Todo se ejecuta, pero luego el script se ejecuta cada minuto, lo que se está volviendo molesto ya que estoy abriendo algunos programas en el script. Si escribir código se vuelve frustrante ya que cambia la ventana activa.
Tenga en cuenta que este es mi primer ejercicio de AppleScript y Plist, así que siéntase libre de criticar mi código. El objetivo de la secuencia de comandos debe programarse para ejecutarse dos veces al día (2 plists): en el momento en que cambie mi estado de IM a disponible, abra algunos programas y habilite una cuenta de correo electrónico. Por la noche, cambiar el estado, deshabilitar correo electrónico.
Ya que se está ejecutando, me di cuenta de que era simplemente el plist, pero comparándolo con otras plantillas para realizar una tarea que se repite una vez al día, me la reviso.
<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>
Por lo tanto, asumo que, en mi ignorancia, tengo algo que no está cerrando con éxito una declaración if o algo así solo se hace de manera ineficaz. Aquí está el guión.
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 de lo contrario, si theHour = 8 y theMinute = 2 entonces
pero prefiero la forma en que está ahora, ya que Mi computadora puede estar apagada cuando está programado para ejecutarse, y creo que esto funcionará en Wake, o tal vez fue un efecto secundario útil de la repetición ... puedo siempre cambia el plist para ejecutarse en el inicio también.