Как создать расширение боковой панели Internet Explorer в C #? - PullRequest
7 голосов
/ 19 октября 2011

Я хочу создать расширение IE - боковую панель («Панель обозревателя»), похожую на боковую панель закладок / избранного в IE9, в ней должна отображаться веб-страница HTML.

Я погуглил несколько часов, прочитал немного:

и

, но мне нужнобоковая панель - без окон или окон сообщений.Мне бы хотелось увидеть простое, базовое решение - я сделаю детали позже.

Я создал расширение для FF и Chrome - их центры разработки расширений намного лучше, чем у Microsoft.

Пожалуйста, скажите мне, что я должен делать простыми шагами.Я хочу создать расширение IE в Visual Studio 2010 и C #.Я не смогу создать его в C ++.

EDIT (2011-10-20):

Мне удалось выполнить решение в Как начать разработку расширений Internet Explorer? , но:

  1. это не работает правильно: установленное слово вообще не выделяется,
  2. Я думаю, чтопроблема в том, что я использую IE9, а не 8,
  3. решение не говорит мне, как создать боковую панель для IE9.

Кстати.Я использую Visual Studio 2010 Express (Visual C # 2010 Express) - не Professional или Ultimate - я думаю, что на вкладке «Отладка» проекта нет опции «Запуск внешней программы».

ПОЖАЛУЙСТА, помогите.

1 Ответ

2 голосов
/ 14 ноября 2011

Я нашел идеальный рабочий пример: http://code.msdn.microsoft.com/CSIEExplorerBar-ba8fe182/view/Reviews

Очень интересно, что я не смог найти его с помощью Google ...

После загрузки просто распакуйте файл и откройтеCSIEExplorerBar.sln.Некоторые из проектов решения не могут быть импортированы в VS 2010 - это просто проекты-установщики, они не нужны для запуска BHO.

Перейдите в свойства проекта и на вкладке «События сборки» поместите этот текст в «Post-».Командная строка события события "(буквально):

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /i "$(TargetDir)$(TargetFileName)"

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /unregister "$(TargetDir)$(TargetFileName)"

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"

Создайте проект - вы получаете ошибки, потому что, как видите, вторая команда пытается отменить регистрацию BHO, но пока ничего не зарегистрировано.Вы можете перезапустить сборку, и вы не получите ошибок.

Откройте IE.Откройте меню «Вид», панели обозревателя и нажмите «Панель обозревателя списка изображений» - вы должны увидеть только что созданную панель обозревателя!

Чтобы разрешить BHO показывать HTML-страницу, вам просто нужно изменить дизайн пользовательского элемента управления - добавьте элемент управления WebBrowser и добавьте URL-адрес страницы для отображения в элементе управления.

Детали

Я создал расширения для Chrome и Firefox.IE расширения являются худшей архитектурой.Документация ужасна - она ​​устарела и в основном только для C ++.Расширения для Chrome и Firefox основаны на HTML / XUL и JavaScript - почти каждый веб-разработчик может создать собственное расширение за считанные минуты!Я думаю, что в IE гораздо сложнее - вам нужно буквально ИССЛЕДОВАТЬ Интернет, чтобы найти любую полезную информацию об этой технологии.

Как вы можете прочитать здесь - http://msdn.microsoft.com/en-us/library/bb776819.aspx - вы должны поиграть с волшебной вещью, называемой Registry.Это действительно худшее, что они могли выбрать для хранения данных о расширениях.Я до сих пор не знаю, куда мне добавить информацию об авторе или версии BHO.Если вы ответите, пожалуйста: https://stackoverflow.com/questions/7926800/how-to-add-author-name-version-number-description-etc-to-browser-helper-objec

BHO не будет работать, если он не подписан ключом - IEExplorerBar.snk в этом решении.Вы можете очень легко добавить ключ в новый проект - просто откройте свойства проекта, вкладку «Подписывание» - «Подписать сборку» и добавьте новый ключ.

Документация очень старая, и никто ничего не делаетоб этом!

ИМХО Microsoft следует перепроектировать и написать IE снова - это устаревшая, анахронная архитектура.

Некоторые ссылки

Добавление панели инструментовкнопки для открытия панели обозревателя: http://msdn.microsoft.com/en-us/library/aa753588%28v=VS.85%29.aspx#details_explorer

Некоторая информация о реестре в системах x64: http://msdn.microsoft.com/en-gb/library/aa384232%28VS.85%29.aspx

О пространстве имен Interlop (SHDocVw): http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.aspx

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