我希望WebBrowser控件使用IE9。 IE9安装在计算机上,但WebBrowser控件仍在使用IE8。
我使用http://www.whatbrowser.org/en/进行了验证。我尝试对注册表进行一些更改(在此处找到解决方案),但是无法正常工作。
答案 0 :(得分:7)
我认为这是传递给网站的用户代理字符串。它错误地将其识别为IE8,因为它可能无法满足其逻辑中与IE9匹配的要求。我也能看到同样的事情发生在我的盒子上。您可以根据需要指定要使用的用户代理字符串。将其添加到您的项目
在你的使用语句中添加...
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)");
答案 1 :(得分:6)
浏览器谎称他们的“用户代理”让网站中断。您运行9,除非您使用测试版,否则不能同时安装8和9。有关用户代理字符串的详细信息,请参阅此blog post。
如果您想确定然后查看加载的DLL版本。 Project + Properties,Debug,勾选“Unmanaged code debugging”。启动程序,Debug + Break All。调试+ Windows +模块并在列表中找到ieframe.dll。版本号列应该告诉您。我得到了“8.00.7600.16385(win7_rtm.090713-1255)”,Win7发布版本。我还没有安装IE9。
答案 2 :(得分:6)
在HTML头中使用它:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
否则:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION \ yourexename.exe - REG_DWORD = 9000 (十进制)
答案 3 :(得分:1)
您可以尝试添加注册表值,以通知您的WebBrowser控件您希望为您的应用程序运行哪个版本的IE。
我有类似的问题 - more here
答案 4 :(得分:0)
它似乎可能是您的页面检测脚本。试试这个site (http://www.whatismybrowser.com/)。我知道其他网站给了我错误的信息,但是这个网站正确地将浏览器识别为我机器上安装的IE版本。