如何使VB.NET webbrowser控件看起来像一个不同的Web浏览器到网站

时间:2013-08-31 00:16:32

标签: vb.net internet-explorer internet-explorer-9

有些网站,特别是那些喜欢HTML 5和诸如此类的网站,会验证您正在使用的浏览器,并给您一些警告信息,例如:“如果您的网络浏览器不是,请警告您使用未经测试的浏览器”在他们的小白名单中。

enter image description here

可悲的是,这些网站不会将IE控件识别为Internet Explorer浏览器,因此有时会显示不必要的警告/错误

我是否有任何可行的方法让我的webbrowser控件显示为Internet Explorer 9而不是实际显示的内容,这样如果网站已经测试了Internet Explorer 9的功能,它将不会显示任何错误

谢谢!

2 个答案:

答案 0 :(得分:2)

默认情况下,WebBrowser控件被检测为IE7,看到这一点 - 尝试导航到“我的用户代理是什么”:

WebBrowser1.Navigate("http://www.whatsmyuseragent.com/")

更改此方法的最简单方法是将其他浏览器的用户代理作为“导航”方法的最后一个参数传递。在普通IE9中打开http://www.whatsmyuseragent.com/,复制显示的字符串并将其用作参数,例如:

WebBrowser1.Navigate("http://www.whatsmyuseragent.com/", Nothing, Nothing, "User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)")

答案 1 :(得分:1)

您遇到的问题是,默认情况下,IE Web浏览器控件在旧版兼容模式下运行。要解决此问题,请为您的流程设置Feature_Browser_Emulation(如果您的项目是针对 AnyCPU 进行编译,请确保同时写入32位和64位注册表项。有关详细信息,请参阅webbrowser using ie10 c# winform

如果您想发送不同的用户代理字符串(这些网站会确定您使用的浏览器版本),则需要使用此处讨论的URLMon API UrlMkSetSessionOptionhttp://blogs.msdn.com/b/ieinternals/archive/2009/10/08/extending-the-user-agent-string-problems-and-alternatives.aspx