Il servizio si blocca quando si utilizza AppleScript per fare clic sull'icona della barra dei menu [duplicato]

0

Il seguente codice AppleScript fa clic sull'icona Wi-Fi trovata nella barra dei menu (origine) :

tell application "System Events" to tell process "SystemUIServer" to tell (menu bar item 1 of menu bar 1) to click

Completa i passaggi seguenti per riprodurre il bug:

  1. In Automator.app, fai clic su File Nuovo Servizio .

  2. Trascina un'azione Esegui AppleScript nel flusso di lavoro.

  3. Incolla la riga di codice sopra nel corpo AppleScript.

  4. Salva e titola il servizio .

  5. Esegui il servizio .

L'icona WiFi non viene mai cliccata e invece viene presentato il seguente messaggio di errore (dolorosamente ambiguo):

Osservazioni su questo bug:

  • Il codice funziona correttamente quando compilato e testato in Script Editor o Automator.

  • Il servizio funziona correttamente quando il servizio viene attivato da Automator (cioè, quando l'applicazione in primo piano è Automator).

  • Il bug persiste indipendentemente dall'icona della barra dei menu specificata.

  • L'aggiunta di privilegi di amministratore non risolve il problema: do shell script "osascript -e 'tell application \"System Events\" to tell process \"SystemUIServer\" to tell (menu bar item 1 of menu bar 1) to click'" password "thePassword" with administrator privileges

Sai cosa potrebbe causare questo conflitto?

Esiste una soluzione alternativa, in modo che un'icona a forma di barra dei menu possa effettivamente essere selezionata da un servizio di AppleScript?

OS X El Capitan, versione 10.11.6.

posta rubik's sphere 14.03.2018 - 04:54
fonte

1 risposta

1

Questo funziona per me sull'ultima versione di macOS Sierra.

Ho seguito esattamente i tuoi passi. Tuttavia, questo codice che hai pubblicato doveva essere ottimizzato per funzionare correttamente sul mio sistema. Ecco il codice che ho usato e inserito in un Automator per eseguire l'azione AppleScript

tell application "System Events"
    click menu bar item 3 of menu bar 1 of application process "SystemUIServer"
end tell

Ho anche ricevuto lo stesso messaggio di errore che avevi quando ho provato a eseguire il servizio da Finder (dopo aver eseguito correttamente lo script in Automator e ScriptEditor)

Su un sospetto, ho aggiunto l'app Finder all'elenco delle app consentite per controllare il mio computer.

Poi sono tornato al menu dei servizi del Finder e ho tentato di eseguire nuovamente il servizio. Bingo! Ha funzionato. Ho fatto la stessa cosa con molte altre applicazioni che avevo aperto e non ha prodotto il messaggio di errore

    
risposta data 14.03.2018 - 05:39
fonte

Leggi altre domande sui tag