Windows Automaton - InvokePattern блокирует выполнение, пока все не завершится

Я испытал такое поведение в своем приложении автоматизации: когда я "нажимаю" кнопку, вызывая InvokePattern.Invoke() Метод все останавливается, пока не завершится обработчик события click внутри автоматизированного приложения.

Хотя это может сделать что-то простое (например, мне не нужно писать тонны кода, чтобы дождаться исчезновения диалога с индикатором выполнения, потому что я просто возвращаю элемент управления, когда все сделано), но я не могу сделать что-нибудь еще. Он даже блокирует доступ к API автоматизации в другом потоке, где он продолжается после того, как обработчик щелчков сделан.

Это вызывает проблемы, когда обработчик щелчков в автоматизированном приложении открывает модальное диалоговое окно, тогда я ничего не могу сделать, доступ к приложению через API автоматизации блокируется, пока диалоговое окно не будет закрыто вручную.

Кто-нибудь решил это как-то и может мне помочь?

Спасибо карел

PS: Справочный источник говорит это:

Request that the control initiate its action.
/// Should return immediately without blocking.
/// There is no way to determine what happened, when it happend, or whether
/// anything happened at all
public void Invoke() { ... }

Редактировать: он отлично работает при автоматизации приложения Windows Notepad, которое не является приложением.NET. И это не работает для клона Notepad (приложение C# WinForms).

1 ответ

ты нашел ответ? У меня аналогичная проблема. в моем случае выполнение зависает, а через некоторое время выдает ошибку.

Другие вопросы по тегам