Applescript para el panel de Preferencias del Sistema específico

1

Estoy tratando de escribir un applecript para ir a una sección específica de las preferencias del sistema - Teclado > Accesos directos > Servicios y con suerte 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 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, deseo dirigir al usuario final para que cambie un método abreviado de teclado para un servicio instalado previamente.

    
pregunta masterninja01 25.11.2015 - 17:10

1 respuesta

2

Aquí hay un guión que acabo de escribir que lo hará. Esto lo llevará a la pestaña de accesos directos del panel de preferencias del 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 while not (window 1 exists)
        end repeat
        tell window 1

            #modify these to specify a row in the left column, or the right column, respectively

            repeat while not (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 while not (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í está la versión que puede usar que identifica las filas por nombre. Tipo de hacky, 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 while not (window 1 exists)
        end repeat
        tell window 1

            #modify these to specify a row in the left column, or the right column, respectively

            repeat while not (rows of table 1 of scroll area 1 of splitter group 1 of tab group 1 exists)
            end repeat
            repeat with current_row in (rows of table 1 of scroll area 1 of splitter group 1 of tab group 1)
                if value of static text 1 of current_row is equal to "Services" then
                    select current_row
                    exit repeat
                end if
            end repeat

            repeat while not (rows of outline 1 of scroll area 2 of splitter group 1 of tab group 1 exists)
            end repeat
            repeat with current_row in rows of outline 1 of scroll area 2 of splitter group 1 of tab group 1
                if name of UI element 2 of current_row is equal to "Open URL" then
                    select current_row
                    exit repeat
                end if
            end repeat
        end tell
    end tell
end tell
    
respondido por el William T Froggard 25.11.2015 - 18:48

Lea otras preguntas en las etiquetas