Come utilizzare AppleScript o Automator per attivare o disattivare l'annuncio temporale a orari specifici?

1

Mi piace il tempo annunciare durante il giorno mentre sto lavorando. Ma lo voglio fuori quando sto dormendo.

La funzione Non disturbare di Apple silenzia le notifiche e i suoni ad esse associati, ma non ha alcun effetto su Annuncio di Tempo.

Altrove in questo sito c'è una vecchia risposta di un certo numero di anni fa che offriva questo script:

esegui script di shell "valori predefiniti scrivi ./com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict TimeAnnuncioAutility -bool SÌ"

Script simile per disattivarlo.

Un'altra risposta può essere trovata qui, ma risale ai giorni di Mountain Lion:

Come posso abilitare "Annunciare l'ora "programmaticamente?

Sono nuovo qui e sono un principiante di livello in Aapplescript. Non ho il privilegio di commentare ancora per chiedere chiarimenti agli autori delle risposte presentate.

Questi script non funzionano su Mac OS X High Sierra (10.13). Mentre il primo script verrà compilato, quando viene eseguito non accade nulla. Lo script della pagina a cui si fa riferimento non verrà nemmeno compilato. Errore di sintassi relativo a un token sconosciuto dopo un identificatore.

Inoltre, apportare una modifica manualmente a questa preferenza nelle impostazioni richiede la mia password per sbloccare. AppleScript o Automator possono gestire anche questo?

    
posta NormG 22.10.2017 - 19:25
fonte

1 risposta

0

UPDATE: funziona per me usando l'ultima versione di High Sierra.

Questa versione si "attiva" "Annuncia l'ora:" se non è già attiva

property thePassword : "yourpassword"

tell application "System Preferences"
    reveal anchor "ClockPref" of pane id "com.apple.preference.datetime"
    tell application "System Events"
        delay 0.5
        my enterPassword()
        set theValue to get value of checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        if theValue is 0 then
            click checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        end if
    end tell
    delay 1
    quit
end tell


on enterPassword()
    tell application "System Events"
        try
            click button "Click the lock to make changes." of window "Date & Time" of application process "System Preferences"
        end try
        delay 1
        --activate
        set value of text field "Enter password" of sheet 1 of window "Date & Time" of application process "System Preferences" to thePassword
        delay 1
        click UI element "Unlock" of sheet 1 of window "Date & Time" of application process "System Preferences"
    end tell
end enterPassword

Questa versione "disattiverà" "Annuncia l'ora:" se già abilitato

property thePassword : "yourpassword"

tell application "System Preferences"
    reveal anchor "ClockPref" of pane id "com.apple.preference.datetime"
    tell application "System Events"
        delay 0.5
        my enterPassword()
        set theValue to get value of checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        if theValue is 1 then
            click checkbox "Announce the time:" of tab group 1 of window "Date & Time" of application process "System Preferences"
        end if
    end tell
    delay 1
    quit
end tell


on enterPassword()
    tell application "System Events"
        try
            click button "Click the lock to make changes." of window "Date & Time" of application process "System Preferences"
        end try
        delay 1
        --activate
        set value of text field "Enter password" of sheet 1 of window "Date & Time" of application process "System Preferences" to thePassword
        delay 1
        click UI element "Unlock" of sheet 1 of window "Date & Time" of application process "System Preferences"
    end tell
end enterPassword

Avreipotutoimpostareloscriptpereseguirel'azionefacendoclicsullacasella"Annuncia l'ora:" se non era già abilitato ... con le istruzioni condizionali di impostazione abilitata o disabilitata di tale casella di controllo in determinati orari. Ho pensato, per ora, sarebbe stato più semplice salvare due diverse versioni della sceneggiatura. Una versione per attivare la casella "annuncia il tempo:" e una versione per disattivare la casella "annuncia il tempo:". In ScriptEditor, hai appena salvato ciascuna versione dello script come applicazioni, da lì apri semplicemente Calendar.app e creane due nuovi eventi del calendario: un evento per abilitare la casella "Annuncia il tempo:" in qualsiasi momento si sceglie e un altro per disabilitare .. Una volta creato l'evento, basta creare un avviso personalizzato e selezionare l'opzione di aprire il file quindi scegliere il copione che hai salvato come app.

    
risposta data 23.10.2017 - 02:57
fonte

Leggi altre domande sui tag