Добавить пользовательскую строку в агент пользователя только для IE - PullRequest
0 голосов
/ 01 ноября 2011

Я создаю панель инструментов, использующую 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. Так как я могу это сделать? Какие изменения мне нужно внести в ключ реестра «User Agent» или мне нужно внести изменения в какой-то другой ключ реестра?

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

Самый простой вариант - через реестр - подробности см. http://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx#UARegistry

0 голосов
/ 24 июля 2015

В вашем диалоговом окне / окне, в котором размещен веб-браузер (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);
}

Это должно сделать это!

...