7 votos

Applescript: "no se puede obtener la ficha del grupo 1 de la ventana" (El Capitan)

El siguiente es un applescript que puedo usar para cambiar los dispositivos de salida de audio:

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.sound"
end tell


tell application "System Events"
    tell application process "System Preferences"
        tell tab group 1 of window "Sound"
            click radio button "Output"
            if (selected of row 2 of table 1 of scroll area 1) then
                set selected of row 1 of table 1 of scroll area 1 to true
                set deviceselected to "Headphones"
            else
                set selected of row 2 of table 1 of scroll area 1 to true
                set deviceselected to "MX279"
            end if
        end tell
    end tell
end tell
tell application "System Preferences" to quit

Se trabajó en Yosemite, pero cuando he actualizado a El Capitan que me está dando el siguiente error:

"System Events got an error: Can't get tab group 1 of window \"Sound\" of application process \"System Preferences\". Invalid index"

Estoy bastante familiarizado con applescript, así que cualquier idea de por qué esto podría estar sucediendo será muy apreciada.

10voto

Forrest Voight Puntos 181

En la primera parte de su secuencia de comandos que la carga de la Sound panel de preferencias. Puede suceder que el panel no está completamente cargado antes de enviar comandos a la misma en la segunda parte de la secuencia de comandos. El error dice que el tab group 1 (la que contiene el Output ficha) no existe en el momento en el que usted está tratando de acceder a él.

Para asegurarse de que el tab group 1 existe, podemos esperar a que con estas dos líneas:

repeat until exists tab group 1 of window "Sound"
end repeat

El guion completo:

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preference.sound"
end tell


tell application "System Events"
    tell application process "System Preferences"
        repeat until exists tab group 1 of window "Sound"
        end repeat
        tell tab group 1 of window "Sound"
            click radio button "Output"
            if (selected of row 2 of table 1 of scroll area 1) then
                set selected of row 1 of table 1 of scroll area 1 to true
                set deviceselected to "Headphones"
            else
                set selected of row 2 of table 1 of scroll area 1 to true
                set deviceselected to "MX278"
            end if
        end tell
    end tell
end tell
tell application "System Preferences" to quit

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X