参考:
https://www.jianshu.com/p/91215e310e8e
https://blog.youkuaiyun.com/cuixiping/article/details/45058201
https://blog.youkuaiyun.com/henter/article/details/51036657
在运行中输入“gpedit.msc”打开本地组策略编辑器
在计算机配置->管理模板->Windows组件->Internet Explorer选项下,双击右侧设置中“自定义用户代理字符串” 进行设置
重启IE生效
----------------------------------------------------------------------------
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform
右侧的列表就是 IE10/IE11的User Agent附加字符串了,把右侧这些项都删掉吧。(可以用鼠标框选多个,然后右键删除)
重新打开IE,F12调出控制台,输入 navigator.userAgent 回车看到类似这样的:
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; LCJB; rv:11.0) like Gecko
已经变得非常苗条了有没有?
-------------------------------------------
VC 中使用 WebBrowser 控件时自定义 User-Agent 的方法至少有以下两种。
第一种方法(有局限性):
WebBrowser 控件的 Navigate 方法定义如下:
void Navigate(LPCTSTR URL, VARIANT * Flags, VARIANT * TargetFrameName, VARIANT * PostData, VARIANT * Headers);
该方法用到的最后一个参数可以用来修改 User-Agent 的默认值,难点在于它并不是一个简单的字符串类型的变量,而是一个 VARIANT 类型的指针。要把 User-Agent 的值用 VARIANT 类型的变量来表达出来,需要做一些转换工作,可以参考以下示例代码片段:
/* 设置 HTTP 头中的 User-Agent 字段 */
char UserAgentVal[] = "User-Agent:MyCustomizedBrowser"; /* 假定要将 User-Agent 的值设为 MyCustomizedBrowser */
char VisitUrl[] = "http://www.baidu.com"; /* 假定要用 WebBrowser 控件显示百度主页 */
_bstr_t bstrVal(UserAgentVal);
VARIANT varString;
varString.vt = VT_BSTR;
varString.bstrVal = bstrVal;
MsWebBrowser.Navigate(VisitUrl, NULL, NULL, NULL, &varString); /* MsWebBrowser是 WebBrowser 控件对应变量的名字,因程序而异 */
---------------------------------------------
第二种方法:
要想在使用 WebBrowser 控件连续访问多个页面时,一直使用设定的 User-Agent 值,需要用到 urlmon.dll 中的 UrlMkSetSessionOption( ) 函数,MSDN 网站上介绍这个函数的网页链接为:
https://msdn.microsoft.com/en-us/library/ms775125(VS.85).aspx
这个函数的定义为:
STDAPI UrlMkSetSessionOption(DWORD dwOption, __in_bcount_opt(dwBufferLength) LPVOID pBuffer, DWORD dwBufferLength, __reserved DWORD dwReserved);
使用这个函数时,需要使用指令 #include "UrlMon.h" 来包含头文件。可以参考以下示例代码片段
char UserAgentVal[] = "MyCustomizedBrowser";
char VisitUrl[] = "http://www.baidu.com";
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgentVal, (strlen(UserAgentVal) + 1), 0);
MsWebBrowser.Navigate(VisitUrl, NULL, NULL, NULL, NULL);