.NET WebBrowser控件是否可以使用IE9?

Mat*_*ley 14 .net c# com internet-explorer

我意识到这是一个早期发布并且不稳定.我不会梦想在任何其他项目中替换IE9的默认webbrowser控件,但在这种情况下我特别需要IE9与其他版本进行比较.

我想让.NET WebBrowser控件使用IE9而不是机器上的默认IE版本.我可以完全控制机器,因此破解系统文件或其他任何可能需要的东西都没有问题.

通常,这可以通过将更新安装到IE来实现,但在IE9的情况下,它会安装一个单独的应用程序,使IE的当前版本保持不变.这意味着WebBrowser控件继续使用当前版本(这很有意义并且是MS的智能举措,因为IE9仍处于开发阶段).但在我的(边缘)情况下,我需要WebBrowser控件来使用IE9.

是否可以在.NET表单应用程序中嵌入IE9?

编辑

Hans Passant的帮助下,我得到了更多.在IE9的prog文件目录中发生了一些非常有趣的事情.有一个名为"iepreview.exe.local"的目录,当删除时,会使IE9预览应用程序使用IE8(使用acid3测试检查).

不是我想要的,但我想知道这是否是我可以根据我的需要进行的某种重定向.

编辑2

我已经尝试将.local hack应用于我的iexplore.exe和我的.NET应用程序的副本,我注意到其他有趣的东西 - 两个应用程序都开始使用IE7而不是IE8(我的IE版本)或IE9.

这可能是iexplore试图使用IE9然后再回到IE7?看起来很奇怪它甚至可以使用IE7,但这是它开始使用的useragent字符串.

小智 12

实际上,您可以修改注册表以强制程序使用IE9呈现.转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION并添加一个名为程序名称(带.exe)的新DWORD值和十进制值设置为9999.


您还可以修改注册表以强制程序使用IE9 GPU渲染.转到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_GPU_RENDERING并添加一个名为程序名称(带.exe)的新DWORD值和十六进制值设置为1.


如果您实际上有IE9,这只能工作!在执行此操作之前,必须首先下载IE9,否则它将无法运行.如果要使用IE8渲染页面,只需将9999更改为8888即可.

注意: GPU渲染仅适用于IE9


Han*_*ant 3

IE9 可以并行安装的唯一方法是为接口和组件类使用新的 GUID。这意味着您无法使用 WebBrowser,它具有硬编码的 GUID。

还有另一种选择,使用 AxHost 包装器。右键单击工具箱,选择项目,选择 COM 组件选项卡并在列表中找到 IE9。不知道它叫什么,旧名称是“Microsoft Web Browser”,由 c:\windows\system32\ieframe.dll 提供服务

您将不得不在没有友好的 WebBrowser 和 HtmlDocument 包装类的情况下凑合。