Selecione um item de menu no AppleScript sem usar “System Events” no 10.9 Mavericks


15

Eu estava apenas respondendo a outra pergunta e me lembrei de um novo "recurso" no Mavericks.

Eu costumava ter um número pequeno de Automator Services que não recebia nenhuma entrada, mas fazia algo útil quando vinculado a um pressionamento de tecla. O exemplo perfeito foi o de trazer o terminal para a frente. Alguns deles exigiram a seleção de um item de menu no aplicativo trazido para a frente, como Bring All to Front.

Agora parece que você precisa conceder "acessibilidade" a todos os aplicativos, para que um pressionamento de tecla universal funcione se o Serviço usar a System Eventsbiblioteca AppleScript.

Alguém sabe uma solução para isso?


2
O fato de a acessibilidade precisar ser autorizada individualmente por aplicativo é ridículo. Eles precisam de uma configuração muito parecida com o Allow applicationsrecurso.
1

1
Bem, eles precisam de uma maneira de autorizar a biblioteca AppleScript 'System Events' que emite o comando e não o aplicativo que está sendo executado quando você ativa o serviço. Mas é ridículo.
Tony Williams

Respostas:


25

Não sei como clicar nos itens de menu sem usar os Eventos do Sistema, mas se alguém chegar aqui procurando como clicar nos itens de menu com Eventos do Sistema:

tell application "System Events" to tell process "Finder"
    click menu item "New Finder Window" of menu 1 of menu bar item "File" of menu bar 1
end tell
tell application "System Events" to tell process "Finder"
    set frontmost to true
    click (menu item 1 where its name starts with "Compress") of menu 1 of menu bar item "File" of menu bar 1
end tell
tell application "System Events" to tell process "Finder"
    set frontmost to true
    tell menu bar item "File" of menu bar 1
        click
        click menu item "Open With" of menu 1
    end tell
end tell

Você pode permitir que todos os aplicativos instalados no momento usem a API de acessibilidade arrastando-os para a lista em Preferências do Sistema:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.