Pregunta

Tengo una aplicación C# con formularios de Windows, utilizando las cuales necesito automatizar la apertura de un archivo utilizando un software interno (MySoftware). Tengo el siguiente código como a continuación. Tengo entendido que WinWaitActive () debería esperar hasta que haga clic en la ventana de software interna (MySoftwareWindow) y hacerlo activo, antes de que el código pase a la siguiente línea y abra el archivo XML especificado (línea 6 en el código a continuación). En cambio, lo que sucede es que la siguiente línea de código se ejecuta incluso antes de que pueda hacer que el software interno activo, ejecutando así el botón abierto (línea 6 en el código a continuación) en la ventana activa actual, que en este caso es el formulario de solicitud C# . ¿Qué crees que va mal aquí? ¡Gracias!

 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); 
¿Fue útil?

Solución

El tiempo de espera es muy Corto, 1 segundo no es suficiente. Haga tiempo de espera al menos 10 veces el peor de los casos, vaya por al menos 20 aquí. Y Asegúrese de verificar el valor de retorno de la función, no tiene sentido continuar si devolvió la falla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top