仅在IE用户代理中添加自定义字符串

本文关键字:自定义 字符串 添加 IE 用户代理 仅在 | 更新日期: 2023-09-27 18:12:52

我正在使用BHO创建工具栏。我想在IE中修改用户代理字符串,如下所示:

当前字符串:Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.0)
要求字符串:CustomName, Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.0)

这里我想在Mozilla/4.0文本之前添加自定义名称。那么我该怎么做呢?我需要在注册表"用户代理"键中进行哪些更改,或者我需要在其他注册表项中进行更改?

谢谢,

仅在IE用户代理中添加自定义字符串

最简单的选择是通过注册表-详细信息请参见http://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx#UARegistry

在你的对话框/窗口,主机的web浏览器(IWebBrowser2/CWebBrowser2/等),你只需要重写OnAmbientProperty。它是CWnd的虚方法的一部分。

BOOL CMyLoginDlg::OnAmbientProperty(COleControlSite* pSite, DISPID dispid,
   VARIANT* pvar)
{
   if (dispid == DISPID_AMBIENT_USERAGENT)
   {
      CString strUserAgent("CustomName, Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
      pvar->vt = VT_BSTR;
      pvar->bstrVal = strUserAgent.AllocSysString();
      return TRUE;
   }
   return __super::OnAmbientProperty(pSite, dispid, pvar);
}

应该可以了!