Automatizando a entrada do usuário / keystroke para um programa

1

Eu li sobre esse problema em postagens relacionadas encontradas aqui no Superusuário; no entanto, meu problema é um pouco diferente e potencialmente difícil de resolver: estou trabalhando com um programa filogenético chamado Paup * e escrevi um script em lote para automatizar minha análise.

Para automatizar esse processo, meu script em lote cria um arquivo temporário contendo uma série de 'jobs' para o Paup * executar. Assim, meu arquivo de lote não interage diretamente com o aplicativo Paup * (o Paup * tem sua própria interface de linha de comando).

Na metade de cada iteração da minha análise, o Paup * solicita uma entrada do usuário (formato S / N) para uma opção que NÃO posso pré-especificar no meu arquivo de trabalho. Eu olhei através do manual de comando e não consigo encontrar uma maneira de suprimir este aviso de diálogo.

Essencialmente, eu preciso enviar um pressionamento de tecla diretamente para o Paup *, mas somente quando o Paup * explicitamente me pede entrada. Caso contrário, a submissão não responderá, pois as entradas não são enfileiradas. Existe uma maneira de conseguir isso?

    
por user3834916 29.12.2014 / 12:56

3 respostas

0

Não tenho certeza se você pode fazer isso com o arquivo em lote, mas há uma linguagem de script de terceiros que se encaixa na sua tarefa. O programa é chamado AutoIT. Você pode incluir seu script em lote no AutoIT e, em seguida, pressionar y com autoit.

Se a janela de comando tiver um nome específico quando aguarde a entrada, é fácil fazer com autoit. Você pode verificar o nome ou título da janela cmd e depois pressionar y ou n. Também deve ser possível de diferentes maneiras.

    
por 29.12.2014 / 13:01
0

Você pode sempre tentar ver a interface "sendkeys". Dê uma olhada no tcc da jpsoftware, que tem a capacidade de enviar chaves para outras janelas, para ver se é isso que você quer.

    
por 29.12.2014 / 13:41
0

Para usar a abordagem sugerida por Ivan Viktorovic (sobre o nome da janela), você ainda pode usar o VBScript. É fácil verificar se a janela com esse nome existe e, em seguida, enviar o nome da janela para "AppActivate" e executar a tecla Enter com "SendKeys" e enviar as chaves apropriadas para enviar Y ou N. Este seria melhor se você não t deseja baixar software adicional.

    
por 29.12.2014 / 19:03