代码之家  ›  专栏  ›  技术社区  ›  Matt Brindley

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

  •  14
  • Matt Brindley  · 技术社区  · 14 年前

    我知道这是一个早期的释放和不稳定。我不想在任何其他项目中将默认的WebBrowser控件换成IE9,但在这种情况下,我特别需要IE9与其他版本进行比较。

    我希望.NET WebBrowser控件使用IE9而不是机器上的默认IE版本。我对这台机器有完全的控制,所以黑客攻击系统文件或其他任何必要的文件都没有问题。

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

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

    编辑

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

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

    编辑2

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

    这会是尝试使用IE9然后又回到IE7的IExplore吗?看起来很奇怪,它甚至可以使用ie7,但这是它开始使用的useragent字符串。

    3 回复  |  直到 12 年前
        1
  •  3
  •   Hans Passant    14 年前

    IE9可以并行安装的唯一方法是为接口和coclass使用新的guid。这意味着你不能使用WebBrowser,它有硬编码的guid。

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

    如果没有友好的Webbrowser和HTMLDocument包装类,您将不得不这样做。

        2
  •  12
  •   Timothy S. Van Haren Prashant    12 年前

    实际上,可以修改注册表以强制程序使用IE9呈现。转到hkey_local_machine\software\microsoft\internet explorer\main\featurecontrol\feature_browser_emulation,并添加一个名为您的程序名(带.exe)和 十进制的 值设置为9999。


    还可以修改注册表以强制程序使用IE9 GPU呈现。转到hkey_current_user\software\microsoft\internet explorer\main\featurecontrol\feature_gpu_rendering,并添加一个新的dword值,该值名为您的程序名(带.exe)和 十六进制的 值设置为1。


    只有当你真的有IE9的时候这才有效!您必须先下载IE9,然后才能执行此操作,否则 不会工作 . 如果要用IE8呈现页面,只需将9999更改为8888。

    注: GPU渲染仅在IE9中可用

        3
  •  2
  •   user2053453    12 年前

    经过大量的谷歌搜索,我发现有两组不同的键 功能浏览器模拟 对于32位和64位应用程序。您需要根据运行的机器将您的设置在正确的位置。此外,还需要确保安装了要模拟的浏览器的正确版本。

    32位:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\**FEATURE_BROWSER_EMULATION**
    
    Value Key: (DWORD) yourapplication.exe
    

    64位:

    HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\Microsoft\Internet Explorer\MAIN\FeatureControl\**FEATURE_BROWSER_EMULATION**
    
    Value Key: (DWORD) yourapplication.exe 
    

    要将此项设置为的值(取自此处的msdn)为十进制值:

    9999(0x27 0F) Internet Explorer 9。网页显示在IE9标准模式下,无论!doctype指令。

    9000(0x23 28) Internet Explorer 9。包含基于标准的网页!doctype指令以IE9模式显示。

    8888(0x22B8) 网页以IE8标准模式显示,无论!doctype指令。

    8000(0x1F40) 包含基于标准的网页!doctype指令以IE8模式显示。

    7000(0x1B58) 包含基于标准的网页!doctype指令以IE7标准模式显示。