Захват модального диалогового объекта с использованием MSHTML / IExplorer - PullRequest
3 голосов
/ 03 февраля 2011

Я использую объекты C #, MSHTML и InternetExplorer для запуска через веб-страницу, но я зацепился за проблему.

По сути, я заметил это в IE7 или более ранней версии, когда window.showModalDialogвызывается, затем запускается событие NewWindow3.

В IE8 и IE9 NewWindow3 никогда не запускается.Как пишет MSDN: «Событие NewWindow3 вызывается только тогда, когда собирается создать новый экземпляр Internet Explorer. Вызов showModalDialog или showModelessDialog не вызывает событие, поскольку они не являются новыми экземплярами Internet Explorer. Они реализованы в виде окон хоста MSHTML., что позволяет им отображать и отображать содержимое HTML, но не гиперссылки между документами. "(http://msdn.microsoft.com/en-us/library/aa768337(v=VS.85).aspx)

Единственный способ, которым я смог приблизиться к захвату запуска модального диалога - но у меня нет доступа к реальному модальному объекту - это использование события WindowStateChanged. Это событие обычно вызывается, но покаЯ заметил, что когда dwFlags == 1 и dwValidFlagsMask == 3, обычно это когда браузер деактивируется из-за модального диалога ...

Теперь все, что мне нужно знать, это как получить этомодальный диалоговый объект. Любая помощь будет принята с благодарностью

1 Ответ

0 голосов
/ 04 февраля 2011

Оказывается, все зависит от настроек Windows UAC. По соображениям безопасности, когда для вашего UAC установлено среднее или высокое значение, UAC запрещает доступ к модальным диалоговым окнам. Понижение этих настроек обеспечивает полный доступ к модальному диалогу через событие NewWindow

...