Добавить пользовательскую строку в агенте пользователя только для IE

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

Спасибо,


person Tech Stuff    schedule 01.11.2011    source источник


Ответы (2)


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

person Yahia    schedule 02.11.2011
comment
Спасибо за ответ. Я также посмотрел данную ссылку ранее. но я не могу найти, как добавить строку перед текстом Mozila/4.0. - person Tech Stuff; 02.11.2011
comment
добро пожаловать ... пожалуйста, не забудьте проголосовать / отметить как принятый любой ответ, который был полезен - person Yahia; 02.11.2011

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

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

person user3282085    schedule 23.07.2015