Я столкнулся с таким поведением в моем приложении автоматизации: когда я «нажимаю» кнопку, вызывая метод InvokePattern.Invoke()
, все останавливается, пока не завершится обработчик события click внутри автоматизированного приложения.
Пока этоможет сделать что-то простое (например, мне не нужно писать тонны кода, чтобы дождаться исчезновения диалогового окна с индикатором выполнения, потому что я просто возвращаю элемент управления, когда все сделано), но я больше ничего не могу сделать,Он даже блокирует доступ к API автоматизации в другом потоке, где он продолжается после того, как обработчик щелчков сделан.
Это вызывает проблемы, когда обработчик щелчков в автоматизированном приложении открывает модальное диалоговое окно, тогда я ничего не могу сделатьдоступ к приложению через API автоматизации блокируется до тех пор, пока диалоговое окно не будет закрыто вручную.
Кто-нибудь как-то решил это и может мне помочь?
Спасибо, Карел
PS: Ссылка source говорит следующее:
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.И он не работает для клона блокнота (приложение C # WinForms).