2011-02-03 54 views
3

我正在使用C#,MSHTML和InternetExplorer對象在網頁中運行,但我在某個問題上遇到了麻煩。使用MSHTML/IExplorer捕獲模態對話框對象

基本上,我已經注意到,在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,這通常是當瀏覽器由於停用成模態對話框...

現在,所有我需要知道是如何獲得該模態對話框對象。任何幫助將不勝感激

回答

0

原來這一切都取決於您的Windows UAC設置。出於安全原因,當您的UAC設置爲中等或更高時,UAC將阻止訪問模態對話框。降低這些設置允許完全訪問模態對話框,通過NewWindow事件

+0

一直試圖找出如何在幾天內訪問這些模態對話框。這聽起來像一個驚人的發現..但它不適合我。我有我的UAC設置一路下來,我附加到NewWindow2和NewWindow3 ..並且都沒有火。在你提到的問題中你提到了NewWindow3,但是在你的回答中你提到了NewWindow ..你是說NewWindow3?或者您是否找到了附加到NewWindow的方法?我試圖找出如何附加到,但InternetExplorer和IWebBrowser2不公開它..只是NewWindow2和NewWindow3。任何幫助將不勝感激 – 2012-04-27 21:43:50