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

标签 c# .net internet-explorer com

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

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

通常,这可以通过安装 IE 更新来实现,但在 IE9 的情况下,它会安装一个单独的应用程序,而不会影响当前版本的 IE。这意味着 WebBrowser 控件继续使用当前版本(这是有道理的,也是 MS 的明智之举,因为 IE9 仍在开发中)。但在我的(边缘)案例中,我需要 WebBrowser 控件才能使用 IE9。

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

编辑

Hans Passant's help我走得更远了。 IE9 的 prog 文件目录中发生了一些非常有趣的事情。有一个名为“iepreview.exe.local”的目录,删除后会使 IE9 预览版应用程序使用 IE8(已使用 acid3 测试对其进行检查)。

不完全是我想要的,但我想知道这是否是某种重定向,我可以利用它来满足我的需要。

编辑 2

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

这会不会是 iexplore 尝试使用 IE9 然后退回到 IE7?看起来很奇怪,它甚至可以使用 IE7,但这是它开始使用的用户代理字符串。

最佳答案

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


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


这只有在您实际拥有 IE9 时才有效!在执行此操作之前,您必须先下载 IE9,否则它将无法运行。 如果你想用 IE8 渲染页面,只需将 9999 更改为 8888。

注意:GPU 渲染仅在 IE9 中可用

关于c# - .NET WebBrowser 控件是否可以使用 IE9?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3346007/

相关文章:

c# - 最大化网格中缩略图的大小

c# - 如何在C#中刷新单例

.net - Twitter 害怕我的冗长网址 - 必须缩短它! [C#]

javascript - Internet Explorer 8 中的 HTML5 和 CSS3 功能

javascript - Ajax 内容未在 IE7 和 8 上显示 - 适用于 IE9 和 FF

javascript - 更改 IE 上对象的原型(prototype)

c# - 静态类和静态方法

c# - 应用程序见解和标签

.net - 如何在 Windbg 中为在 64 位服务器上运行的 32 位应用程序加载 SOS

.net - 在复杂对象图上使用 IXmlSerializable 接口(interface)