TWebBrowser и IE версия - PullRequest
       3

TWebBrowser и IE версия

4 голосов
/ 29 сентября 2010

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

При тестировании машины с IE6 на другой машине с IE7 с тем же скомпилированным исполняемым файлом с использованием TWebBrowser поведение действительно было таким, как указано в ответе.

Теперь я снова подвергаю сомнению ответ, в машине с IE8 этот же исполняемый файл определяется сервером как IE7. Я написал простое приложение rails, которое пишет пользовательский агент, и это понятно. На той же машине, если я получаю доступ к этому приложению rails в IE, оно печатает:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)

Когда я получаю доступ с помощью этого исполняемого файла:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)

Более того, с небольшой помощью моего друга Process Monitor Я понял, что classid, вызываемый для создания экземпляра TWebBrowser, - {8856F961-340A-11D0-A96B-00C04FD705A2}, имя которого в реестре Windows имеет имя " Microsoft Web Browser "и указывает на ieframe.dll.

Теперь все становится немного более странным. Если я захожу в system32 / ieframe.dll и проверяю версию ... 8.0.

Я действительно запутался. Вопрос: когда я использую TWebBrowser, какая версия ie будет использоваться, действительно?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 29 сентября 2010

Используется IE8, но в режиме совместимости с IE7. Команда IE написала об этом в марте 2009 года, где они также описали, как можно получить рендеринг IE8 вместо IE7 по умолчанию.

Я ничего не видел о том, как IE9 будет вести себя здесь, поэтому я не могу сказать, понадобится ли вам другое значение для использования рендеринга IE9, или есть какое-то другое значение, которое просто означает «новейший» и получает IE8 рендеринг также.

0 голосов
/ 29 сентября 2010

Может быть, TWebBrowser сохраняет значение Useragent, которое было на момент создания, в свойстве ControlData? Попробуйте удалить и повторно добавить элемент управления в форму на компьютере с установленным IE8.0.

В любом случае эти строки агента пользователя выглядят странно похожими. Это, вероятно, тот же самый движок IE8.0, независимо от того, что он печатает.

...