Nota de atualização: Esta resposta foi originalmente escrita antes do lançamento do macOS Mojave e, como tal, para usá-lo no macOS Mojave, você precisará alterar três linhas de código .
Mudança:
select table 1 of scroll area 2
select row 16 of table 1 of scroll area 2
tell tab group 1
Para:
select table 1 of scroll area 1
select row 16 of table 1 of scroll area 1
tell tab group 1 of group 1
O seguinte exemplo de código AppleScript funciona para mim no macOS High Sierra :
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
reveal pane id "com.apple.preference.universalaccess"
delay 1
tell application "System Events"
tell window 1 of application process "System Preferences"
select table 1 of scroll area 2
delay 0.1
select row 16 of table 1 of scroll area 2
delay 0.1
tell tab group 1
click radio button "Accessibility Keyboard"
delay 0.1
click checkbox "Enable Accessibility Keyboard"
end tell
end tell
end tell
quit
end tell
No Editor de scripts , salvei o código AppleScript de exemplo como um aplicativo denominado Accessibility Keyboard.app , na pasta Aplicativos .
Em seguida, adicionei o Accessibility Keyboard.app a: Preferências do Sistema > Segurança e Privacidade > Privacidade > Acessibilidade
Agora eu posso abrir o Accessibility Keyboard facilmente via Spotlight , ou o Accessibility Keyboard.app pode ser arrastado e solto no Dock, de modo a ser lançado por lá.
Atualizar:
Meu exemplo original do código AppleScript era voltado para a abertura do Teclado de Acessibilidade , não para fechá-lo. Dessa forma, se ele estiver aberto e o script original for executado novamente, ocorrerá um erro. A seguinte versão do código do AppleScript de exemplo considera se o Teclado de Acessibilidade já está ou não exibido e, em caso afirmativo, o fecha.
Note que enquanto isso fecha o Teclado de Acessibilidade se ele está aparecendo, há um salto adicional para o Dock Tile de Preferências do Sistema e não é e causa outro, então uma distração visual secundária.
Exemplo de código AppleScript :
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
reveal pane id "com.apple.preference.universalaccess"
delay 1
tell application "System Events"
tell window 1 of application process "System Preferences"
select table 1 of scroll area 2
delay 0.1
select row 16 of table 1 of scroll area 2
delay 0.1
tell tab group 1
click radio button "Accessibility Keyboard"
delay 0.1
if value of checkbox "Enable Accessibility Keyboard" is 0 then
click checkbox "Enable Accessibility Keyboard"
else
click checkbox "Enable Accessibility Keyboard"
delay 1
my clickOK()
end if
end tell
end tell
end tell
quit
end tell
on clickOK()
tell application "System Events" to click button "OK" of window 1 of application process "System Preferences"
end clickOK
Observe que as Preferências do Sistema não precisam estar visíveis para que isso funcione e por que não há nenhum activate
comando no código AppleScript de exemplo . Além disso, se as Preferências do Sistema já estiverem abertas, elas serão primeiro fechadas antes que o restante do código seja processado. Isso é feito por alguns motivos, o primeiro dos quais já foi declarado e, em segundo lugar, ver os eventos da interface do usuário processados é uma distração visual e pode ser irritante.
Observe também que o valor dos delay
comandos pode precisar ser ajustado para o seu sistema, e ou delay
comandos adicionais podem ou não ser necessários. Ajuste os valores de e ou adicione / remova os delay
comandos conforme apropriado.
Lembre-se de que, assim que o aplicativo for adicionado às Preferências do sistema > Segurança e privacidade > Privacidade > Acessibilidade e modificado a partir de então, será necessário desmarcá-lo e verificar novamente se as novas alterações podem ser processadas.
Nota: O código AppleScript de exemplo é apenas isso e não emprega nenhum tratamento de erros e destina-se apenas a mostrar uma das várias maneiras de realizar uma tarefa. O ônus é sempre sobre o usuário para adicionar / usar o tratamento de erros apropriado conforme necessário / desejado.
click
vez deselect
e não usardelay
s? Como fazerclick
eselect
diferir?select
define o foco para um objeto enquantoclick
executa o objeto. A conclusão é que as diferenças, conforme aplicáveis e / ou necessárias em qualquer cenário de caso de uso específico, se tornam mais aparentes com a experiência do uso do Script de interface com o usuário do AppleScript.delay
comando , isso é necessário em alguns casos de uso e não em outros, alheio se algo está errando e é uma questão de tempo, então um atraso é necessário. Muitas vezes, com a interface do usuário, os atrasos de scripts são necessários, mas nem sempre.select
vs.click
faz sentido. Para que eu nem sempre precise confiar na generosidade de pessoas como você, existe um bom tutorial / documentação para o script de interface de usuário do AppleScript que você recomendaria?Baseado em seu excelente trabalho anterior, aqui está uma
Versão atualizada de 2018
Características
Enhanced Application Object Model
Código fonte
Repositório
Fork the Gist no GitHub: toggle-accessibility-keyboard-macos
Ansioso para o seu feedback, Felicidades, S
fonte