Возможно ли для элемента управления .NET WebBrowser использовать IE9? - PullRequest
14 голосов
/ 27 июля 2010

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

Я бы хотел иметь.NET WebBrowser Control использует IE9 вместо версии IE по умолчанию на машине.У меня есть полный контроль над машиной, поэтому можно без проблем взломать системные файлы или что-то еще.

Обычно этого можно достичь, установив обновление для IE, но в случае IE9 он устанавливаетотдельное приложение, оставляя текущую версию IE нетронутой.Это означает, что элемент управления WebBrowser продолжает использовать текущую версию (что имеет смысл и был разумным шагом со стороны MS, поскольку IE9 все еще находится в стадии разработки).Но в моем (крайнем) случае мне нужен элемент управления WebBrowser для использования IE9.

Возможно ли встроить IE9 в приложение форм .NET?

EDIT

С Гансом Пассантом Я иду немного дальше.Что-то очень интересное происходит в каталоге прог-файлов IE9.Есть каталог под названием «iepreview.exe.local», который после удаления заставляет приложение IE9 Preview использовать IE8 (проверено с помощью теста acid3).

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

РЕДАКТИРОВАТЬ 2

Я пытался применить взлом .local к обоим копиям iexplore.exe и мое приложение .NET, и я заметил кое-что еще интересное - оба приложения начали использовать IE7 вместо IE8 (моя версия IE) или IE9.

Может ли это быть iexplore, пытающимся использовать IE9 и затем вернуться к IE7?Кажется странным, что он даже имел бы IE7 доступным, но это строка useragent, которую он начинает использовать.

Ответы [ 3 ]

12 голосов
/ 21 июля 2011

На самом деле, вы можете изменить свой реестр, чтобы заставить вашу программу использовать рендеринг IE9.Перейдите в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_BROWSER_EMULATION и добавьте новое значение DWORD с именем вашего приложения (с расширением .exe) и значением десятичное значение , установленное в 9999.


Вы также можете изменить свой реестр, чтобы заставить вашу программу использовать IE9 GPU Rendering.Перейдите в раздел HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_GPU_RENDERING и добавьте новое значение DWORD с именем вашей программы (с расширением .exe) и значением шестнадцатеричное , установленным в 1.


ЭТО ТОЛЬКО РАБОТАЕТ, ЕСЛИ У ВАС НА САМОМ ДЕЛЕ IE9!Прежде чем сделать это, вы должны сначала загрузить IE9, иначе не будет работать .Если вы хотите визуализировать страницы с IE8, просто измените 9999 на 8888.

Примечание: Визуализация графического процессора доступна только в IE9

3 голосов
/ 27 июля 2010

Единственный способ, которым IE9 мог установить бок о бок, это когда он использует новые GUID для интерфейсов и коклассов.Это означает, что вы не можете использовать WebBrowser, он имеет жестко запрограммированные GUID.

Есть еще одна опция, использующая оболочку AxHost.Щелкните правой кнопкой мыши на панели инструментов, выберите «Элементы», выберите вкладку «COM-компоненты» и найдите IE9 в списке.Понятия не имею, как это можно назвать, старое имя было «Веб-браузер Microsoft», обслуживаемое c: \ windows \ system32 \ ieframe.dll

Вам придется обходиться без дружественной оболочки WebBrowser и HtmlDocumentклассы.

2 голосов
/ 18 февраля 2013

После многих поисков в Google я обнаружил, что есть два разных набора ключей для FEATURE_BROWSER_EMULATION для 32-битных и 64-битных приложений. Вы должны установить свой в нужном месте в зависимости от машины, на которой вы работаете. Также вам необходимо убедиться, что вы устанавливаете правильную версию браузера, которую хотите эмулировать.

32 бит:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\**FEATURE_BROWSER_EMULATION**

Value Key: (DWORD) yourapplication.exe

64 бит:

HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\Microsoft\Internet Explorer\MAIN\FeatureControl\**FEATURE_BROWSER_EMULATION**

Value Key: (DWORD) yourapplication.exe 

Значение для установки этого ключа (взято из MSDN здесь) в виде десятичных значений:

9999 (0x270F) Internet Explorer 9. Веб-страницы отображаются в режиме стандартов IE9 независимо от директивы! DOCTYPE.

9000 (0x2328) Internet Explorer 9. Веб-страницы, содержащие основанные на стандартах директивы! DOCTYPE, отображаются в режиме IE9.

8888 (0x22B8) Веб-страницы отображаются в режиме стандартов IE8 независимо от директивы! DOCTYPE.

8000 (0x1F40) Веб-страницы, содержащие основанные на стандартах директивы! DOCTYPE, отображаются в режиме IE8.

7000 (0x1B58) Веб-страницы, содержащие основанные на стандартах директивы! DOCTYPE, отображаются в режиме стандартов IE7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...