System-Preferences Applescript usando osascript non può selezionare la sua finestra

3

Questo AppleScript (basato su una risposta in un modulo MacWorld ) mi dirà se Screen La condivisione è abilitata:

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

Quindi se lo eseguo nell'editor di AppleScript restituisce true o false a seconda dell'impostazione di Condivisione schermo. Se provo a eseguirlo sulla riga di comando (che è quello che voglio veramente) ottengo qualcosa del genere:

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

Altre informazioni

Se utilizzo uno script come questo per contare le finestre delle Preferenze di 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

restituisce 1 quando è in esecuzione con l'editor AppleScript, ma 0 quando lo eseguo utilizzando osascript.

Ancora più informazioni : sul mio portatile ottengo un errore ancora più strano che esegue lo stesso comando:

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

1 risposta

1

Quindi ci sono due modi in cui questo script può fallire:

  1. La versione da linea di comando non è in grado di ottenere la finestra delle Preferenze di Sistema.
  2. Eseguirlo causerà il reclamo sull'abilitazione dell'accesso per i dispositivi di assistenza.

Bene, il secondo caso che si presenta è autoesplicativo: questo script richiede che tu abbia abilitato l'accesso per i dispositivi di assistenza. Il primo non è ancora ovvio, ma se si esce da Preferenze di Sistema e lo si riavvia, allora potrebbe funzionare; alla fine ha fatto per me, e ho modificato il codice sopra per far uscire le Preferenze di Sistema alla fine.

    
risposta data 11.06.2013 - 18:03
fonte

Leggi altre domande sui tag