¿Cómo uso AppleScript o Automator para activar o desactivar Time Announce en momentos específicos?

1

Me gusta Time Announce durante el día mientras trabajo. Pero lo quiero apagado cuando estoy durmiendo.

La función "No molestar" de Apple silenciará las notificaciones y los sonidos asociados con ellos, pero no tiene efecto en Time Announce.

En otros lugares de este sitio hay una respuesta antigua de hace algunos años que ofrecía este script:

do shell script "los valores predeterminados escriben ./com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict TimeAnnouncementsEnabled -bool YES"

Script similar para desactivarlo.

Otra respuesta se puede encontrar aquí, pero se remonta a los días de Mountain Lion:

Cómo habilito "Anunciar la hora "programmatically?

Soy nuevo aquí y soy un principiante de rango para Aapplescript. No tengo el privilegio de comentar aún para obtener aclaraciones de los autores sobre las respuestas presentadas.

Estos scripts no funcionan en Mac OS X High Sierra (10.13). Mientras que la primera secuencia de comandos se compilará, cuando se ejecuta nada sucede. El script de la página referenciada ni siquiera se compilará. Error de sintaxis sobre un token desconocido después de un identificador.

Además, hacer un cambio manual a esta preferencia en la configuración requiere que mi contraseña se desbloquee. ¿Puede AppleScript o Automator lidiar con eso también?

    
pregunta NormG 22.10.2017 - 19:25

1 respuesta

0

ACTUALIZACIÓN: Esto me funciona con la última versión de High Sierra.

Esta versión "se activará" "Anunciará la hora:" si aún no está habilitada

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

Esta versión se "apagará" "Anunciará la hora:" si ya está habilitada

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

Podríahaberconfiguradolasecuenciadecomandospararealizarlaaccióndehacerclicenlacasilladeverificación"Anunciar la hora:" si aún no estaba habilitada ... con declaraciones condicionales de configuración habilitada o deshabilitada de esa casilla de verificación en ciertos momentos. Pensé, por ahora, que sería más fácil guardar dos versiones diferentes de la secuencia de comandos. Una versión para activar la casilla de verificación "Anunciar la hora:" y una versión para desactivar la casilla de verificación "Anunciar la hora:". En ScriptEditor, solo guardó cada versión de la secuencia de comandos como aplicaciones. Desde allí simplemente abra Calendar.app y cree dos. nuevos eventos de calendario. un evento para habilitar la casilla de verificación "Anunciar la hora:" en el momento que elija. Y otro para deshabilitar ... Una vez que haya creado el evento, simplemente cree una alerta personalizada y seleccione la opción de abrir archivo y luego elija su script que has guardado como una aplicación.

    
respondido por el wch1zpink 23.10.2017 - 02:57

Lea otras preguntas en las etiquetas