WebBrowser控件使用IE9

use*_*792 5 c# browser internet-explorer webbrowser-control internet-explorer-9

我希望WebBrowser控件使用IE9.IE9安装在计算机上,但WebBrowser控件仍在使用IE8.

我通过http://www.whatbrowser.org/en/进行了验证.我尝试对注册表进行一些更改(在这里找到解决方案)但是没有用.

Dav*_*der 7

我认为这是传递给网站的用户代理字符串.它错误地将其识别为IE8,因为它可能无法满足其逻辑中与IE9匹配的要求.我也能看到同样的事情发生在我的盒子上.您可以根据需要指定要使用的用户代理字符串.将其添加到您的项目中

在你的using语句中添加...

using System.Runtime.InteropServices;
Run Code Online (Sandbox Code Playgroud)

在你的表单类中添加....

[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;

public void ChangeUserAgent(String Agent)
{
    UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0);
}
Run Code Online (Sandbox Code Playgroud)

然后只需在代码中的某处调用它......也许是构造函数或form_load事件.

ChangeUserAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
Run Code Online (Sandbox Code Playgroud)


Han*_*ant 6

浏览器谎称他们的"用户代理"让网站中断.您运行9,除非您使用测试版,否则不能同时安装8和9.有关用户代理字符串的详细信息,请参阅此博客文章.

如果您想确定然后查看加载的DLL版本.Project + Properties,Debug,勾选"Unmanaged code debugging".启动程序,Debug + Break All.调试+ Windows +模块并在列表中找到ieframe.dll.版本号列应该告诉您.我得到了"8.00.7600.16385(win7_rtm.090713-1255)",Win7发布版本.我还没有安装IE9.


hB0*_*hB0 6

在HTML头中使用它:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Run Code Online (Sandbox Code Playgroud)

除此以外:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION\yourexename.exe - REG_DWORD = 9000(十进制)