【发布时间】:2010-12-05 08:14:22
【问题描述】:
只是想知道 VB.NET 在访问网页时读取的浏览器类型。例如,在我的网站上,它显示了访问我网站的所有不同浏览器的细分。
【问题讨论】:
-
这是在你做 Web 请求的时候吗?
标签: .net vb.net winforms webbrowser-control user-agent
只是想知道 VB.NET 在访问网页时读取的浏览器类型。例如,在我的网站上,它显示了访问我网站的所有不同浏览器的细分。
【问题讨论】:
标签: .net vb.net winforms webbrowser-control user-agent
您没有为您的问题提供太多背景信息,但我假设您谈论的是使用 .NET Framework 中内置的 WebBrowser control 时发送的 User Agent string。
由于该控件仅使用 Internet Explorer 呈现页面,因此您会看到一个用户代理字符串,该字符串与您在同一台计算机上使用 IE 访问该页面时所看到的非常相似。 IE 字符串通常将自身报告为Mozilla/4.0 compatible,但也给出了特定版本的 MSIE 并列出了当前版本的 Windows。
例如,在 .NET Framework 4.0 版本的 64 位版本的 Windows Server 2008 R2 下运行时,每当我从 WebBrowser 控件浏览页面时,我都会被识别为:
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.1)
相比之下,同一台机器上的 Internet Explorer 将其显示为用户代理字符串:
Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1)
唯一的区别是 .NET WebBrowser 控件将自己报告为 Internet Explorer 版本 7.0 (MSIE 7.0),而不是计算机上安装的版本 8.0。这是因为出于兼容性原因,该控件使用 IE 7 渲染引擎,而不是 IE 8 中的渲染引擎。如果需要,您可以通过编辑注册表值来change this。
要在 IE8 标准模式下运行 WebBrowser 控件,请在注册表中使用以下新值:
[(HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] "MyApplication.exe" = dword 8000 (Hex: 0x1F40)
要在 IE7 标准模式下运行,请使用以下注册表值:
[(HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] "MyApplication.exe" = dword 7000 (Hex: 0x1B58)
【讨论】: