Pergunta

Eu tenho um aplicativo C# com o Windows Forms, usando o qual preciso automatizar a abertura de um arquivo usando um software interno (MySoftware). Eu tenho o seguinte código como abaixo. Meu entendimento é que o winwaitactive () deve esperar até que eu clique na janela do software interno (mysoftwarewindow) e o torne ativo, antes que o código vá para a próxima linha e abre o arquivo XML especificado (linha 6 no código abaixo). Em vez disso, o que está acontecendo é que a próxima linha de código é executada antes mesmo de eu fazer o software interno ativo, executando assim o botão aberto (linha 6 no código abaixo) na janela ativa atual, que neste caso é o formulário de aplicativo C# . O que você acha que está dando errado aqui? Obrigado!

 aut = new AutoItX3Lib.AutoItX3Class();
 aut.WinWaitActive("mySoftwareWindow", "", 1);
 aut.WinMenuSelectItem("mySoftwareWindow", "", "&File", "&Open", "", "", "", "", "", "");
 aut.Send("C:\\test.xml", 0);
 //click the Open button
 aut.Send("!o", 0);
 aut.Send("{ENTER}", 0); 
Foi útil?

Solução

O tempo limite é muito Curto, 1 segundo não é suficiente. Faça tempo limite pelo menos 10 vezes o pior caso, vá para pelo menos 20 aqui. E Certifique -se de verificar o valor de retorno da função, não há sentido em continuar se retornar a falha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top