т.е. useragent wxWidgets
-
04-07-2019 - |
Вопрос
В настоящее время я использую то есть в качестве активного компонента 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 для отладки.