在仅用于IE的用户代理中附加自定义字符串

时间:2011-11-01 11:18:56

标签: c# internet-explorer registry bho

我正在创建工具栏,使用BHO.And我想在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文本之前添加自定义名称。那我该怎么办呢? 我需要在注册表“User Agent”中进行哪些更改,或者我需要在其他一些注册表项中进行更改?

谢谢,

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

在托管Web浏览器的对话框/窗口(IWebBrowser2 / CWebBrowser2 / etc)中,您只需要覆盖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);
}

应该这样做!