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?