Frage

Ich habe eine C# -Anwendung mit Windows-Formularen, mit der ich das Öffnen einer Datei mithilfe einer internen Software (MySoftware) automatisieren muss. Ich habe den folgenden Code wie unten. Mein Verständnis ist, dass WinwaitActive () warten sollte, bis ich auf das interne Softwarefenster klicke (MySoftwareWindow) und es aktiv mache, bevor der Code in die nächste Zeile übergeht und die angegebene XML-Datei öffnet (Zeile 6 in Code unten). Stattdessen ist das passiert, dass die nächste Codezeile noch vor dem aktiven Software-Software aktiviert wird, wodurch die Schaltfläche Öffnen (Zeile 6 im folgenden Code) im aktuellen aktiven Fenster ausgeführt wird. In diesem Fall handelt es sich in diesem Fall um das C#-Antragsformular . Was glaubst du, läuft hier schief? Vielen Dank!

 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); 
War es hilfreich?

Lösung

Die Auszeit ist sehr Kurz, 1 Sekunde ist nicht genug. Machen Sie mindestens zehnmal zum schlimmsten Fall, mindestens 20 hier. Und Überprüfen Sie unbedingt den Funktionsrückgabewert. Es macht keinen Sinn, sich fortzusetzen, wenn der Fehler zurückgegeben wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top