문제

I have a C# application with windows forms, using which I need to automate the opening of a file using an in-house software( mySoftware). I have the following code as below. My understanding is that WinWaitActive() should wait until I click on the in-house software window (mySoftwareWindow) and make it active, before the code moves on to the next line and opens the specified xml file (line 6 in code below). Instead whats happening is that the next line of code runs even before I can make the in-house software active, thus running the Open button (line 6 in code below) on the current active window, which in this case is the C# application form. What do you think is going wrong here? Thanks!

 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); 
도움이 되었습니까?

해결책

The timeout is very short, 1 second isn't enough. Make time-outs at least 10 times the worst case, go for at least 20 here. And be sure to check the function return value, there's no point to continue if it returned failure.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top