т.е. useragent wxWidgets - PullRequest
       60

т.е. useragent wxWidgets

2 голосов
/ 24 октября 2008

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

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

Ответы [ 3 ]

2 голосов
/ 25 октября 2008

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

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

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

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

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

1 голос
/ 16 декабря 2008

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

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

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

0 голосов
/ 07 ноября 2008

Head 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 для отладки.

...