Элемент управления WebBrowser для использования IE9 - PullRequest
5 голосов
/ 03 апреля 2011

Я хочу, чтобы элемент управления WebBrowser использовал IE9.IE9 установлен на компьютере, но элемент управления WebBrowser по-прежнему использует IE8.

Я подтвердил с помощью http://www.whatbrowser.org/en/. Я пытаюсь внести некоторые изменения в реестр (нашел решение здесь), но не работает.

Ответы [ 5 ]

7 голосов
/ 13 октября 2011

Я думаю, что это строка агента пользователя, которая передается на сайт. Он неверно идентифицирует его как IE8, так как он может не соответствовать требованиям их логики, чтобы соответствовать IE9. Я вижу, что то же самое происходит и на моей коробке. Вы можете указать строку агента пользователя для использования, если хотите. Добавьте это к вашему проекту

В ваших заявлениях об использовании добавьте ...

using System.Runtime.InteropServices;

В вашем классе формы добавьте ....

[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;

public void ChangeUserAgent(String Agent)
{
    UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0);
}

Тогда просто вызовите его где-нибудь в вашем коде ... может быть, конструктор или событие form_load.

ChangeUserAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
6 голосов
/ 26 ноября 2011

Используйте это в заголовке HTML:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

В противном случае:

HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION \ yourexename.exe - REG_DWORD = 9000 (Десятичное)

6 голосов
/ 03 апреля 2011

Браузеры лгут о своем "пользовательском агенте", чтобы дать веб-сайтам перерыв.Вы используете 9, вы не можете установить 8 и 9 одновременно, если вы не использовали бета-версию.См. сообщение в блоге для получения подробной информации о строке агента пользователя.

Если вы хотите убедиться, посмотрите на загружаемую версию DLL.Project + Properties, Debug, галочка "Отладка неуправляемого кода".Запустите вашу программу, Debug + Break All.Отладка + модули Windows + и найдите ieframe.dll в списке.Столбец номера версии должен сказать вам.Я получаю "8.00.7600.16385 (win7_rtm.090713-1255)", релизную версию Win7.У меня еще не установлен IE9.

1 голос
/ 07 марта 2013

Вы можете попытаться добавить значение реестра, которое информирует ваш Web-браузер о версии IE, которую вы хотите запустить для своего приложения.

У меня была похожая проблема - больше здесь

0 голосов
/ 16 июля 2013

Кажется, это может быть сценарий обнаружения вашей страницы. Попробуйте этот сайт (http://www.whatismybrowser.com/). Я знаю, что другие сайты дали мне неверную информацию, но этот сайт правильно идентифицировал браузер как версию IE, установленную на моем компьютере.

...