Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Використання браузера від Mozilla в C # на Visual Studio 2010

Зазвичай свій браузер пишуть, щоб зробити автоматизацію або програмне управління над деякими процесами. І як не дивно практично ніхто не хоче використовувати вбудований компонент браузера того середовища розробки, в якій створюється проект. І тут немає нічого дивного. Тому розробники змушені шукати сторонні продукти для вирішення своїх завдань.

При пошуках движка, вибір припав на движок від Mozilla Gecko . І так вийшло, що документація і приклади щодо його використання (практично тільки на англомовних ресурсах) були під C # або під VB.Net. Я свій вибір зупинив на C #.

Проект буде розроблятися в середовищі розробки - Visual Studio 2010. Для роботи нам знадобиться завантажити і встановити SDK (xulrunner) від Mozilla. Xulrunner можна скачати тут . Рекомендую скачати версію 1.9.0.0. Далі нам необхідно завантажити та встановити бібліотеку Skybound.GeckoFX.bin, яка є обгорткою для xulrunner під язик програмування C #. І в цьому випадку я також рекомендую завантажити версію бібліотеки - 1.9.0.0.

Справа в тому, що в деяких SDK, є баги. Я сам недавно зіткнувся, коли треба було написати новий проект. Частина вихідного коду взяв зі старого проекту, а ось який версії xulrunner в ньому використовувався, я забув. Отримавши баг при роботі проекту і прочитавши пару статей (спочатку підозра падала на Visual Studio 2010) я дізнався, що в деяких версіях є істотні недоробки. Тому демонстрація підключення браузера, буде відбуватися на перевіреної версії платформи xulrunner і перевіреної версії бібліотеки-обгортки.

Якщо ви завантажили все необхідне, то можна переходити до створення демонстраційного проекту. Але для початку необхідно розібратися з підключенням xulrunner. З отриманого архіву з xulrunner нас цікавить каталог bin. Створимо на диску "С" наприклад, каталог "XPCOM" і в нього скопіюємо весь вміст каталогу bin з архіву з нашим SDK. Потім, необхідно розпакувати архів з бібліотекою Skybound.GeckoFX.bin. Далі відкриваємо Visual Studio і створюємо стандартний проект під windows. На наступному кроці, необхідно відкрити панель елементів. Після чого натискаємо по її області, правою клавішею миші. Перед вами повинна з'явитися форма з вибором елементів панелі управління.

Перед вами повинна з'явитися форма з вибором елементів панелі управління

Переходимо на вкладку "Компоненти .NET Framework" і натискаємо кнопку "Огляд". Перед нами відкриється стандартне діалогове вікно для вибору файлу. У ньому, то і вибираємо файл Skybound.Gecko.dll, який теж знаходиться в каталозі bin, каталогу Skybound.GeckoFX.bin.v1.9.xx і натискаємо кнопку "OK". В панелі елементів у вкладці "Загальні" повинен з'явитися компонент - GeckoWebBrowser. Після чого, компонент GeckoWebBrowser, потрібно перенести на форму.

Після чого, компонент GeckoWebBrowser, потрібно перенести на форму

Тепер необхідно провести ініціалізацію компонента. Для початку необхідно додати простір імен Skybound.Gecko. Для цього на початку коду, вставимо рядок:

using Skybound.Gecko;

Потім в модулі форми, в конструкторі форми, додамо наступний код:

Xpcom.Initialize ( "З: \\ XPCOM");

І ще один рядок коду необхідно додати в обробник події активації форми:

Mozilla.Navigate ( "http://google.ru", 0, "", null, "");

Все можна запустити проект. Якщо все запрацювало, то ви повинні побачити наступне:

Якщо все запрацювало, то ви повинні побачити наступне:

У самому движку, є всі ті можливості, які були присутні в Mozilla, а це близько трьох років тому. Чого не можна сказати про бібліотеку-обгортці. У цій версії, на основі якої побудований демонстраційний проект, перелік можливостей дуже і дуже малий. Може бути і зворотне: в xulrunner можуть бути відсутні деякі інтерфейси , Реалізація яких є у встановленій бібліотеці-обгортці. Подивитися перелік доступних інтерфейсів в xulrunner можна, якщо в каталозі з SDK відкрити каталог bin \ components. Там повинні бути присутніми файли з розширенням * .xpt. Це і є бібліотеки, які вийшли в результаті компіляції файлів з описом інтерфейсів. На даний момент движок Mozilla фундаментально змінено і існують бібліотеки-обгортки, набагато більш нових версій (можливо там функціональних особливостей буде набагато більше). Що я розумію під обмеженням функціональних можливостей?

Ось, наприклад, які можливості відсутні в Skybound.Gecko v1.9.0.0:

  • видалення cookie;
  • можливість генерації подій від миші;
  • і ще багато всього;

Погодьтеся, такі функціональні особливості списати з рахунків ми не можемо. Звичайно, нічого страшного в цьому немає. Це все при бажанні реалізовується самостійно, шляхом додавання необхідних інтерфейсів і реалізацією деяких методів. Документації в наш час досить, але не факт що у кого то, буде проблема ідентична вашій. Але в будь-якому випадку при бажанні розібратися можна.

Про те як можна модифікувати браузер, дивіться тут .

Що я розумію під обмеженням функціональних можливостей?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.