Управление веб-браузером внутри IE

#c# #vb.net #internet-explorer #com #activex

#c# #vb.net #internet-explorer #com #activex

Вопрос:

У меня есть объект .NET ActiveX / COM, внутри которого есть веб-браузерный элемент управления (среди других элементов управления, таких как кнопки и т. Д.).

Кажется, что этот объект загружается нормально, кнопки отображаются и работают, но по какой-то причине веб-браузерный элемент управления не отображается!

Есть ли какие-либо ограничения для этого в IE (например, IE боится чего-то рекурсивного и т.д.)? Есть ли способ, которым я могу это преодолеть?

Заранее спасибо,

Зубровка

Комментарии:

1. Вам следует переосмыслить свой дизайн. ActiveX, размещенный в браузере, который содержит веб-браузерный элемент управления… Действительно?

2. Согласен. ActiveX в браузере == напрашивается на неприятности, даже без дизайна WTF, который вы описываете здесь.

3. Это технический вопрос, а не вопрос дизайна. Я разрабатываю плагин для приложения, которому более 10 лет, и у меня осталось не так много других вариантов. Итак, возвращаясь к основному моему вопросу, могу я это сделать или нет?

4. я бы порекомендовал вам перепроектировать приложение и переписать его портирование activex на javascript, java или silverlight в зависимости от того, что оно делает.

5. Можете ли вы опубликовать тестовый код где-нибудь, который воспроизводит проблему?

Ответ №1:

У FireBreath есть библиотека под названием WebView, которая делает это; Я тестировал ее как в браузерах на основе NPAPI, так и в ActiveX, и она работает просто отлично. Есть много причин, по которым вы можете захотеть это сделать.

Поскольку я не знаю, что вы делаете, я не могу сказать вам, что вы делаете неправильно… но я могу показать вам исходный код, который FireBreath использует для этого:

https://github.com/firebreath/FireBreath/blob/master/src/libs/WebView/Win/WebViewWin.cpp

Это на C , но вы могли бы найти что-то полезное из него. Я не использую .net в браузере — слишком много накладных расходов, но теоретически должны применяться те же принципы.