script funziona in Script Editor ma non come app (MacOS Mojave)

1

Il seguente script funziona come previsto in Script Editor:

tell application "System Events"
    set nord to menu bar item 1 of menu bar 2 of application process "NordVPN IKE"
    ignoring application responses
        click nord
    end ignoring
end tell
do shell script "killall System\ Events"
tell application "System Events"
    set nord to menu bar item 1 of menu bar 2 of application process "NordVPN IKE"
    tell menu 1 of nord
        if exists menu item "Disconnect" then
            click menu item "Disconnect"
        else
            click menu item "Connect"
        end if
    end tell
end tell

Quando esporto in .app e faccio doppio clic su di esso per eseguirlo, viene visualizzato il seguente errore:

Can’t get «class menE» 1 of «class mbri» 1 of «class mbar» 2 of «class pcap» "NordVPN IKE" of application "System Events". Invalid index.

System Events got an error: Can’t get menu 1 of menu bar item 1 of menu bar 2 of application process "NordVPN IKE". Invalid index. (-1719)

Come posso cambiare lo script in modo che funzioni come .app ?

Grazie

    
posta Walrus the Cat 01.11.2018 - 23:10
fonte

1 risposta

0

Devi fare due cose per far sì che venga eseguito:

Prima di tutto devi assicurarti che System Events abbia le autorizzazioni nel riquadro delle preferenze di Accessibilità.

In secondo luogo, è necessario aggiungere un ritardo dopo aver fatto clic sulla voce di menu per dargli il tempo di caricare. Questo alla fine è ciò che sta causando l'errore indice, perché il menu non si è ancora propagato e sta tentando di accedere agli elementi in esso contenuti. Cambia il tuo script al seguente:

....
        click nord
    end ignoring
end tell
delay 0.3
do shell script "killall System\ Events"
....
    
risposta data 02.11.2018 - 18:48
fonte

Leggi altre domande sui tag