我有一个带有 Windows 窗体的 C# 应用程序,我需要使用它使用内部软件 ( mySoftware) 自动打开文件。我有以下代码。我的理解是,WinWaitActive() 应该等到我单击内部软件窗口 (mySoftwareWindow) 并将其激活,然后代码才会移至下一行并打开指定的 xml 文件(下面代码中的第 6 行)。相反,发生的情况是,下一行代码甚至在我激活内部软件之前就运行了,因此在当前活动窗口上运行“打开”按钮(下面代码中的第 6 行),在本例中是 C# 应用程序表单。您认为这里出了什么问题?谢谢!

 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); 
有帮助吗?

解决方案

超时时间是 非常 很短,1秒不够。最坏情况下的暂停次数至少为 10 倍,此处至少为 20 次。 请务必检查函数返回值,如果返回失败则没有继续下去的意义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top