1 votos

Applescript: "no puedo obtener el grupo de pestañas 1 de la ventana "Preferencias del Sistema"

He intentado ejecutar el script con Automator de esta pregunta :

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences" to tell window 1
    click checkbox "Use F1, F2, etc. keys as standard function keys" of tab group 1
end tell
quit application "System Preferences"

Sólo funciona cuando la casilla de preferencias del sistema está activada, de lo contrario (la casilla está desactivada) me da el error:

The action “Run AppleScript” encountered an error: “System Events got an error: Can’t get tab group 1 of window 1 of process "System Preferences". Invalid index.”

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

Por lo tanto, el cambio de fn no funciona.

Utilizo el MacBook con chip M1 con Monterey.

¿Qué debo hacer para ejecutar el script claramente? ¿Cómo puedo modificar el script para que funcione? ¿Por qué no funciona?

0voto

wch1zpink Puntos 11

En mi MBP , corriendo MacOS Big Sur (11.5.2) No tengo checkbox "Use F1, F2, etc. keys as standard function keys" . En las preferencias del sistema, la mía es checkbox "Use F1, F2, etc. keys as standard function keys on external keyboards"

enter image description here

He añadido delay y actualizar el valor del texto de checkbox "Use F1, F2, etc. keys as standard function keys" a checkbox 3 . Hasta ahora ha pasado todas mis pruebas.

Estas ediciones me funcionan.

if application "System Preferences" is running then do shell script "killall 'System Preferences'"
repeat until application "System Preferences" is not running
    delay 0.1
end repeat

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell window "Keyboard" of process "System Preferences"
    repeat until checkbox 3 of tab group 1 exists
        delay 0.1
    end repeat
    tell its tab group 1
        click checkbox 3
    end tell
end tell

delay 0.1
quit application "System Preferences"

Sólo funciona cuando la casilla de verificación en las Preferencias del Sistema está activada, de lo contrario (la casilla de verificación está desactivada) obtengo el error:

El valor de checkbox El atributo AXEnabled siempre será verdadero, tanto si la casilla está marcada como si no lo está. El valor de checkbox El atributo AXEnabled no puede ser activado o desactivado.

Esto se puede comprobar con lo siguiente AppleScript código.

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell

tell application "System Events" to tell window "Keyboard" of process "System Preferences"
    repeat until checkbox 3 of tab group 1 exists
        delay 0.1
    end repeat
    tell its tab group 1 to tell its checkbox 3
        tell its attribute "AXEnabled" to set canBeDisabled to settable
    end tell
end tell

return canBeDisabled

Asumo que el OP se refiere a la checkbox estar activado o desactivado a estar "marcado o no marcado"

-1voto

David Anderson Puntos 2189

Pruebe a añadir la línea

delay 0.25 

después de la línea

reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"

que se muestra en su AppleScript.

Supongo que un retraso de 0,25 segundos puede no ser suficiente. El ejemplo siguiente intenta hacer clic 10 veces durante un período de al menos 2,25 segundos. Una vez que un clic tiene éxito no se hacen más intentos.

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences" to tell window 1
    repeat with i from 10 to 1 by -1
        try
            click checkbox "Use F1, F2, etc. keys as standard function keys" of tab group 1
            exit repeat
        on error
            if i = 1 then
                display alert "Failed to click" as critical
            else
                delay 0.25
            end if
        end try
    end repeat
end tell
quit application "System Preferences"

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