2010-05-13 41 views
1

我有一個Windows窗體的C#應用​​程序,使用它我需要使用內部軟件(mySoftware)自動打開文件。我有以下代碼如下。我的理解是,WinWaitActive()應該等到我單擊內部軟件窗口(mySoftwareWindow)並使其處於活動狀態時,纔會將代碼移到下一行並打開指定的xml文件(第6行,代碼如下)。取而代之的是,即使在內部軟件處於活動狀態之前,下一行代碼仍然運行,因此在當前活動窗口中運行「打開」按鈕(下面代碼中的第6行),在本例中爲C#應用程序窗體。你認爲這裏出了什麼問題?謝謝!AutoIT WinWaitActive問題

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); 

回答

2

超時是非常短,1次是不夠的。在最糟糕的情況下,至少讓超時10次,至少20次。 一定要檢查函數的返回值,如果返回失敗則沒有意義。