Existe uma maneira de recuperar o conteúdo do buffer Putty de um script AutoHotKey? Para muitas aplicações,WinGetTextfunciona, mas não parece para o Putty. Além disso, o AHK Windows Spy não exibe nenhum texto do buffer, então suspeito que o Putty simplesmente usa um método diferente de armazenamento/exibição para seu buffer.
Estou me perguntando se você pode ativar uma configuração no Putty de forma que ele exponha o conteúdo de seu buffer de uma maneira padrão do Windows que o AHK possa então capturar como o texto da janela visível.
Alternativamente, suponho que pode haver algum recurso do AHK que não conheço e que pode obter esse texto, mas isso parece menos provável.
Responder1
Eu li uma abordagem diferente: faça com que o PuTTY grave o conteúdo em um arquivo de log. Em seguida, faça com que o AutoHotKey leia um arquivo. Isso pode fornecer as informações relevantes:
autoputty-scripted-telnet-precisa de ajuda
Aqui está outra abordagem:
essência.github.com/serf/2710415
Envolve a seleção de texto, que o copia para a área de transferência e, em seguida, faz com que o AutoHotKey seja lido na área de transferência. (Ele também salva uma cópia da área de transferência antes de destrui-la e restaura os dados de backup da área de transferência).
mostra um exemplo simples de login com PuTTY.
AutoHotkey:_Launch_putty_or_RDP_sessions_via_a_tree-driven_selection_menu
Eu testei nenhuma dessas soluções. Então boa sorte.
Se você tiver acesso ao servidor, você pode querer fazer coisas no lado do servidor. Por exemplo, você pode ter uma chave SSH que permite ao usuário executar apenas um comando (ou o início de um comando, como "sudo mount", mas não "sudo any-else"); sudo também pode fornecer restrições sobre qual comando é usado. OpenSSH pode permitir que um único usuário tenha várias chaves. Portanto, escolher qual chave você usa, no lado local/cliente, pode afetar o que acontece quando você se conecta ao servidor. Detalhes, que provavelmente serão úteis para quem deseja explorar esta rota, podem ser encontrados em:
Responder2
Já fiz esse tipo de processo antes de usar o ImageSearch
comando: faça uma captura de tela de um prompt de login vazio e use o ImageSearch para determinar se o prompt foi alcançado. Descobri que isso é relativamente confiável (embora de forma alguma perfeito) - pode funcionar para você!
Para um sistema mais confiável, você provavelmente precisará escrever um script que faça a interação ssh para você, por exemplo, python
com pexpect
, que usei com sucesso. As instruções sobre como fazer isso estão fora do escopo desta questão, mas dependendo de quais linguagens de script você conhece (além do AutoHotKey), tenho certeza de que haveria uma opção. Não tenho experiência em fazer esse tipo de coisa perl
, mas pode ser possível.