C# 使用MSHTML/IExplorer捕获模态对话框对象

C# 使用MSHTML/IExplorer捕获模态对话框对象,c#,internet-explorer,modal-dialog,mshtml,C#,Internet Explorer,Modal Dialog,Mshtml,我正在使用C#、MSHTML和InternetExplorer对象来浏览网页,但我遇到了一个问题 基本上,我注意到在IE7或更早版本中,当调用window.showModalDialog时,会触发NewWindow3事件 在IE8和IE9中,不会触发NewWindow3。正如MSDN所写:“只有在即将创建Internet Explorer的新实例时,才会触发NewWindow3事件。调用showModalDialog或showModelessDialog不会触发事件,因为它们不是Internet

我正在使用C#、MSHTML和InternetExplorer对象来浏览网页,但我遇到了一个问题

基本上,我注意到在IE7或更早版本中,当调用window.showModalDialog时,会触发NewWindow3事件

在IE8和IE9中,不会触发NewWindow3。正如MSDN所写:“只有在即将创建Internet Explorer的新实例时,才会触发NewWindow3事件。调用showModalDialog或showModelessDialog不会触发事件,因为它们不是Internet Explorer的新实例。它们实现为MSHTML主机窗口,允许它们呈现和显示HTML内容,但不能显示文档之间的超链接。” (http://msdn.microsoft.com/en-us/library/aa768337(v=VS.85).aspx)

我能够接近捕捉被触发的模式对话框的唯一方法是使用WindowsStateChanged事件,但我无法访问实际的模式对象。通常会调用此事件,但我注意到,当dwFlags==1和dwValidFlagsMask==3时,这通常是浏览器由于模式对话框而停用的时候。


现在,我只需要知道如何获取模式对话框对象。如果您能提供任何帮助,我将不胜感激。事实证明,这一切都取决于您的Windows UAC设置。出于安全原因,当您的UAC设置为“中”或“高”时,UAC会阻止访问模式对话框。降低这些设置可以通过NewWi完全访问模式对话框ndow event

几天来一直在试图找出如何访问这些模式对话框。这听起来像是一个惊人的发现。但它对我不起作用。我一直都有我的UAC设置,我同时连接到NewWindow2和NewWindow3。两个都没有启动。在你的问题中你提到了NewWindow3,但在你的回答中你提到了ned NewWindow..你是说NewWindow3吗?还是你找到了一种连接到NewWindow的方法?我正试图找出如何连接到它,但InternetExplorer和IWebBrowser2没有公开它..只有NewWindow2和NewWindow3。任何帮助都将非常感谢连接到NewWindow..没有任何问题。我使用的是64位的Windows 7,IE8 32位。你用的是什么操作系统和IE版本?