WebBrowser控件使用IE9

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

我通过http://www.whatbrowser.org/en/validation了。 我尝试对注册表进行一些更改(在此处找到解决方案)但是无法正常工作。

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

在你的using语句中添加…

using System.Runtime.InteropServices; 

在你的表单类中添加….

 [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); } 

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

 ChangeUserAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"); 

浏览器谎称他们的“用户代理”让网站中断。 您运行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。

在HTML头中使用它:

  

除此以外:

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

您可以尝试添加注册表值,以通知您希望为您的应用程序运行的WebBrowser控件。

我有类似的问题 – 更多在这里

它似乎可能是您的页面检测脚本。 试试这个网站(http://www.whatismybrowser.com/) 。 我知道其他网站给了我错误的信息,但是这个网站正确地将浏览器识别为我机器上安装的IE版本。