como injetar as teclas digitadas em um programa como o Safari a partir de um script bash?

1

Estou tentando automatizar alguns pressionamentos de tecla a cada alguns minutos. O momento exato ainda é indeterminado. Mas basicamente eu quero capturar um diálogo de chat ao vivo. Tenho certeza de que poderia fazer isso com mais elegância. Não sei muito nada sobre html ou javascript ou php etc. Eu conheço um pouco de Bash e um pouco de AppleScript.

osascript -e 'tell app "Safari" to activate'
osascript -e 'set Script to "keystroke \"a\" using command down"'
osascript -e do Script

Isso iria continuar e ativar o TextEdit e colar lá. Mas eu não passei desse ponto. Isso resulta em: erro de sintaxe: não é possível definir o script como "pressionamento de tecla \" a \ "usando o comando inativo". Acesso não permitido. (-10003)

Alterando Script para myScript e recebo: pressionamento de tecla "a" usando o comando para baixo .

Mas os dois métodos ainda resultam em: erro de execução: a variável do não está definida. (-2753)

O fato de chamar "do" uma variável faz minha cabeça girar.

Eu pensei em usar o programa expect . Eu sei que posso executar expect e dizer algo como send \n para obter uma nova linha. No entanto, isso é tudo que sei. E não consigo encontrar muita documentação sobre como enviar teclas modificadoras como Cmd-A . Realmente não importa se expect ou osascript , desde que o resultado final funcione.

Eu gostaria de, de alguma forma, sair da etapa select all porque seleciona toda a página da Web a ser copiada em vez de apenas a caixa de bate-papo. Qualquer ajuda seria muito apreciada.

    
por user168773 04.05.2016 / 00:16

1 resposta

2

Tente isso:

osascript -e 'tell Application "Safari" to activate'
osascript -e 'tell application "System Events"' -e 'keystroke "a" using command down' -e 'end tell'
    
por 04.05.2016 / 00:27