Questa è stata un'esperienza di apprendimento per me. Tutto mi viene logicamente verificato in questo script / plist ma qualcosa non è corretto. Tutto funziona, ma poi lo script viene eseguito ogni minuto che diventa fastidioso dal momento che sto aprendo alcuni programmi nella sceneggiatura. Se digiti il codice diventa frustrante quando cambia la finestra attiva.
Nota, questo è il mio primo esercizio su mele e plist, quindi sentiti libero di criticare il mio codice. L'obiettivo della sceneggiatura deve essere programmato per essere eseguito due volte al giorno (2 plists) - nel mio sito cambia il mio stato di messaggistica istantanea a disponibile, apro alcuni programmi e abilito un account di posta elettronica. Alla sera, cambia stato, disattiva la posta elettronica.
Dal momento che è in esecuzione, ho pensato che fosse semplicemente il plist, ma confrontandolo con altri modelli per eseguire un'attività che si ripete una volta al giorno e che mi controlla.
<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>
Quindi presumo che nella mia ignoranza io abbia qualcosa che non sta chiudendo con successo una dichiarazione if, o qualcosa è appena fatto in modo inefficace. Ecco lo script.
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
Credo di poter dire un valore assoluto altrimenti se theHour = 8 e theMinute = 2 allora
ma preferirei il modo in cui è ora dal momento che il mio computer potrebbe essere spento quando è programmato per funzionare, e credo che funzionerà al risveglio, o forse è stato un utile effetto laterale del ripetersi ... Posso cambia sempre il plist da eseguire all'avvio pure.