2

我有一个在 Windows 7 64 位上运行的 32 位应用程序。该应用程序(用 C++ 编写)承载一个 WebBrowser 控件。

当要求 WebBrowser 控件弹出一个新窗口(通过 javascript window.open() 调用)时,它会启动一个新的 Internet Explorer 进程。特别是,这个新的 IE 进程是一个 64 位的 IE 进程。

由于网页喜欢 Adob​​e Flash,不幸的是我需要确保新启动的 IE 进程是 32 位版本(这是我机器上的默认版本),以便显示 Adob​​eFlash 内容。

有趣的是,IE 本身(WebBrowser/MSHTML 的包装器)不会遇到这个问题,这意味着可以设置某种配置来提示WebBrowser 控件启动 32 位进程。

我应该在哪里寻找以确保 WebBrowser / MSHTML 创建正确的流程的任何想法?

4

2 回答 2

0

这对您的应用程序来说可能有点矫枉过正,但对我来说,将平台目标更改为 x86 可以防止在控件或弹出窗口中使用 64 位 IE。

于 2011-01-24T19:48:41.467 回答
0

我建议您处理 DWebBrowserEvents2::NewWindow2 事件。您可以在自己的进程中的网络浏览器控件中打开它,也可以在新的 CLSID_InternetExplorer 对象中打开它。

于 2010-07-16T17:08:22.313 回答