2 votos

Applescript para un panel específico de Preferencias del Sistema

Estoy tratando de escribir un applescript para llegar a una sección específica de las preferencias del sistema - Teclado> Accesos directos> Servicios y espero que a un servicio específico también. He conseguido una parte del camino con esto:

tell application "System Preferences"
    activate
    reveal anchor "shortcutsTab" of pane id "com.apple.preference.keyboard"
end tell

Esto me lleva a la parte de accesos directos del panel de preferencias del teclado, pero me gustaría profundizar más en la selección correcta. ¿Hay alguna manera de seleccionar un servicio específico en este panel de preferencias? En última instancia, quiero dirigir al usuario final a cambiar un atajo de teclado para un servicio previamente instalado.

0 votos

Mi script no funcionaba, arreglado, aunque es un poco más feo :(

4voto

William T Froggard Puntos 2862

Aquí hay un script que acabo de escribir que lo hará. Esto te llevará a la pestaña de atajos del panel de preferencias Teclado, y selecciona una fila de las columnas izquierda y derecha:

tell application "System Preferences"
    activate
    reveal anchor "shortcutsTab" of pane id "com.apple.preference.keyboard"
end tell
tell application "System Events"
    tell application process "System Preferences"
        repeat until (window 1 exists)
        end repeat
        tell window 1
            #modify these to specify a row in the left column, or the right column, respectively

            repeat until (row 3 of table 1 of scroll area 1 of splitter group 1 of tab group 1 exists)
            end repeat

            select row 3 of table 1 of scroll area 1 of splitter group 1 of tab group 1

            repeat until (row 1 of outline 1 of scroll area 2 of splitter group 1 of tab group 1 exists)
            end repeat

            select row 1 of outline 1 of scroll area 2 of splitter group 1 of tab group 1
        end tell
    end tell
end tell

Aquí tienes la versión que puedes utilizar y que identifica las filas por su nombre. Un poco complicado, pero debería funcionar bien.

tell application "System Preferences"
    activate
    reveal anchor "shortcutsTab" of pane id "com.apple.preference.keyboard"
end tell
tell application "System Events"
    tell application process "System Preferences"
        repeat until (window 1 exists)
        end repeat
        tell window 1
            #modify these to specify a row in the left column, or the right column, respectively

            repeat until (rows of table 1 of scroll area 1 of splitter group 1 of tab group 1 exists)
            end repeat

            select (first row of table 1 of scroll area 1 of splitter group 1 of tab group 1 whose value of static text 1 is equal to "Services")

            repeat until (rows of outline 1 of scroll area 2 of splitter group 1 of tab group 1 exists)
            end repeat

            select (first row of outline 1 of scroll area 2 of splitter group 1 of tab group 1 whose name of UI element 2 is equal to "Open URL")
        end tell
    end tell
end tell

0 votos

¡Gracias! Esto hizo exactamente lo que quería. He estado jugando con secuencias de comandos de interfaz de usuario sin éxito durante un tiempo. Es bueno tener un buen ejemplo de esto.

0 votos

¿Hay alguna forma de seleccionar una fila por su nombre y no por su número? Quiero que esto funcione en máquinas que nunca he usado (parte de un instalador). No consigo que funcione pero he intentado select row "Open URL"… IT no parece querer aceptar el nombre. ¿Algún consejo?

0 votos

He realizado los cambios solicitados. Es una especie de hacky, como GUI scripting tiende a ser, pero hace el trabajo. No puedo verificar si esto funcionará en todos los sistemas operativos sin modificación, sin embargo (Estoy corriendo 10.11). Esto ciertamente se puede hacer en todas las versiones de OS X que conozco (desde la 10.5), pero la sintaxis puede ser ligeramente diferente, y tendrías que comprobarlo. Con un poco de suerte, esto puede "funcionar".

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