Applescript per il pannello delle preferenze di sistema specifico

1

Sto provando a scrivere un applescript per farmi accedere a una sezione specifica delle preferenze di sistema - Tastiera > Tasti di scelta rapida > Servizi e, auspicabilmente, anche a un servizio specifico. Ho preso una parte di questo con questo:

tell application "System Preferences"
    activate
    reveal anchor "shortcutsTab" of pane id "com.apple.preference.keyboard"
end tell

Questo mi porta alla sezione Shortcut del pannello delle preferenze della tastiera, ma vorrei approfondire ulteriormente la selezione corretta. C'è un modo per selezionare un servizio specifico in questo pannello delle preferenze? In definitiva, desidero indirizzare l'utente finale a modificare una scorciatoia da tastiera per un servizio precedentemente installato.

    
posta masterninja01 25.11.2015 - 17:10
fonte

1 risposta

2

Ecco uno script che ho appena scritto che lo farà. Questo ti porterà alla scheda delle scorciatoie del pannello delle preferenze della tastiera e seleziona una riga dalle colonne sinistra e destra:

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

Ecco la versione che puoi utilizzare che identifica le righe per nome. Una specie di hacky, ma dovrebbe funzionare bene.

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
    
risposta data 25.11.2015 - 18:48
fonte

Leggi altre domande sui tag