Вопрос

В настоящее время я использую то есть в качестве активного компонента x com в wxWidgets и хотел узнать, есть ли какой-нибудь простой способ изменить пользовательский агент, который всегда будет работать.

Я изменяю заголовок, но это работает только тогда, когда я вручную загружаю ссылку (то есть, вызываем setUrl)

Это было полезно?

Решение

Единственный способ, который будет "всегда работать", " насколько я смог найти, это изменение строки user-agent в реестре . Это, конечно, повлияет на каждый экземпляр веб-браузера, работающий на этом компьютере.

Вы также можете попробовать поиск в Google по DISPID_AMBIENT_USERAGENT . Из этой страницы Microsoft :

  

MSHTML также попросит нового пользователя   агент через DISPID_AMBIENT_USERAGENT   при переходе по нажатым гиперссылкам.   Это окружающее свойство может быть   переопределено, но не используется, когда   программно вызывая навигацию   Способ; это также не вызовет   userAgent свойство DOM   объект навигатора или clientInformation   поведение, которое будет изменено - это свойство   всегда будет отражать интернет   Собственная строка UserAgent в проводнике.

Я не знаком с компонентом MSHTML, поэтому не уверен, что это полезно.

Я надеюсь, что это, по крайней мере, даст вам возможность начать. : -)

Другие советы

Сегодня я немного погуглил с подсказкой, которую вы предоставили руководителю, и я решил, как это сделать.

wxWidgets использует класс рэпера activex с именем FrameSite, который обрабатывает запросы вызова. Я сделал новый класс, который наследует от него, обрабатывает событие DISPID_AMBIENT_USERAGENT и передает все остальные. Таким образом, теперь я могу вернуть другой пользовательский агент.

Спасибо за помощь.

Руководитель Geek уже сказал вам, где в реестре IE будет искать по умолчанию.

Это просто по умолчанию. Если вы реализуете [IDocHostUIHandler :: GetOptionKeyPath] ( http : //msdn.microsoft.com/en-us/library/aa753258 (VS.85% 29.aspx) или [IDocHostUIHandler2 :: GetOverrideKeyPath] ( http://msdn.microsoft.com/en-us/library/aa753274 (VS.85% 29. aspx) , IE будет использовать эту запись реестра.

Возможно, вы захотите использовать RegMon SysInternal для отладки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top