Управление WebBrowser в 32-битном приложении. Запуск 64-битного Internet Explorer при вызове window.open () - PullRequest
2 голосов
/ 16 июля 2010

У меня 32-битное приложение, работающее в Windows 7 64bit. Приложение (написанное на C ++) содержит элемент управления WebBrowser.

Когда элементу управления WebBrowser предлагается открыть новые окна (через вызов javascript window.open ()), он запускает новый процесс Internet Explorer. В частности, этот новый процесс IE является 64-битным процессом IE.

Поскольку веб-страницы любят Adobe Flash, мне, к сожалению, необходимо убедиться, что запущенный новый процесс IE является 32-разрядной версией (по умолчанию на моем компьютере), чтобы можно было отображать содержимое AdobeFlash.

Интересно, что сам IE (обертка вокруг WebBrowser / MSHTML) не страдает этой проблемой, подразумевая, что есть какая-то конфигурация, которая может быть установлена ​​на подсказка для элемента управления WebBrowser для запуска 32-битного процесса.

Любые идеи, где я должен искать, чтобы WebBrowser / MSHTML создать правильный процесс?

Ответы [ 2 ]

0 голосов
/ 24 января 2011

Это может быть излишним для вашего приложения, но для меня изменение цели платформы на x86 не позволяет использовать 64-битный IE в элементах управления или во всплывающих окнах.

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

Я предлагаю вам обработать событие DWebBrowserEvents2 :: NewWindow2 .Вы можете открыть его в элементе управления веб-браузера в своем собственном процессе или в новом объекте CLSID_InternetExplorer.

...