【发布时间】:2012-09-21 12:58:49
【问题描述】:
在我的 Windows 应用程序中,单击某些链接后,我拥有 WebBrowser 控件,弹出窗口在 IE 中打开,我想访问该弹出窗口的 URL。
我尝试了浏览器控件的 NewWindow 事件,但它给了我父窗口的对象作为发送者和事件。
我读到了 COM 组件 Web 浏览器控件,它具有相同的 NewWindow 事件,它给了我弹出窗口的 URL。如何使用这个 COM 组件代替 .NET 控件?
【问题讨论】:
在我的 Windows 应用程序中,单击某些链接后,我拥有 WebBrowser 控件,弹出窗口在 IE 中打开,我想访问该弹出窗口的 URL。
我尝试了浏览器控件的 NewWindow 事件,但它给了我父窗口的对象作为发送者和事件。
我读到了 COM 组件 Web 浏览器控件,它具有相同的 NewWindow 事件,它给了我弹出窗口的 URL。如何使用这个 COM 组件代替 .NET 控件?
【问题讨论】:
我建议不要使用 COM 组件,它有一些缺点,例如内存管理、异常处理和 DLL Hell 问题。
要获取弹出窗口的 URL,您可以将 WebBrowser.ActiveXInstance 转换为 SHDocVx.WebBrowser 对象,然后处理其 NewWindow3 事件以检索弹出窗口的 URL。
算法。-
在页面加载时将 WebBrowser 转换为 SHDocVx.WebBrowser。 取消 .NET 控件的 NewWindow 事件。 并在 NewWindow3 事件中编写代码。
【讨论】: