Вопрос

У меня есть приложение C # с формы Windows, используя, что мне нужно автоматизировать открытие файла с использованием внутреннего программного обеспечения (MySoftware). У меня есть следующий код, как показано ниже. Мое понимание в том, что WinWaitactactive () должен подождать, пока я не нажму на окно собственного программного обеспечения (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