System-Preferences Applescript usando osascript no puede seleccionar su ventana

3

Este AppleScript (basado en una respuesta en un formulario de MacWorld ) me dirá si o no Screen El intercambio está habilitado:

tell application "System Preferences"
    reveal pane "com.apple.preferences.sharing"
end tell

tell application "System Events"
    tell process "System Preferences"
        set screen_sharing_toggle to value of (checkbox 1 of row 2 of table 1 of scroll area 1 of group 1 of window 1) as boolean
    end tell
end tell

tell application "System Preferences"
        Quit
end tell

set newvar to screen_sharing_toggle

Entonces, si ejecuto eso en el editor AppleScript, devuelve true o false dependiendo de la configuración de Compartir pantalla. Si intento ejecutarlo en la línea de comandos (que es lo que realmente quiero), obtengo algo como esto:

  

nombre de script : execution error: System Events got an error: Can’t get window 1 of process "System Preferences". Invalid index. (-1719)

Un poco más de información

Si uso ejecutar un script como este para contar las ventanas de Preferencias del Sistema:

tell application "System Preferences"
    reveal pane "com.apple.preferences.sharing"
end tell

tell application "System Events"
    tell process "System Preferences"
        count windows
    end tell
end tell

devuelve 1 cuando se ejecuta con el editor de AppleScript, pero 0 cuando lo ejecuto usando osascript.

Aún más información : en mi computadora portátil aparece un error aún más extraño al ejecutar el mismo comando:

execution error: System Events got an error: Access for assistive devices is disabled. (-1719)
    
pregunta Philip Kearns 10.06.2013 - 15:42

1 respuesta

1

Entonces, hay dos formas en que este script puede fallar:

  1. La versión de la línea de comandos no puede obtener la ventana de Preferencias del sistema.
  2. Ejecutarlo provocará una queja sobre la habilitación del acceso para dispositivos de asistencia.

Bueno, el último caso resulta que se explica por sí mismo: esta secuencia de comandos requiere que se haya habilitado el acceso para dispositivos de asistencia. Lo primero todavía no es obvio, pero si sale de las Preferencias del Sistema y lo reinicia, entonces podría funcionar; finalmente lo hizo por mí, y he enmendado el código anterior para que las Preferencias del sistema se retiren al final.

    
respondido por el Philip Kearns 11.06.2013 - 18:03

Lea otras preguntas en las etiquetas