Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Взаимодействие программы с браузерами |
Автор: BreakPointMAN 9.5.2006, 22:02 |
Собственно, сабж. Интересует любая информация на темы:
![]() Что касается того, на чем и под чем пишем... Среда разработки: Borland C++ Builder 6 Операционная система: Win9x/ME, Win2k, WinXP Нашел кое-что по написанию плагинов для Internet Explorer'а на http://rsdn.ru( http://rsdn.ru/article/inet/ieplug.xml и http://rsdn.ru/article/inet/ieplug2.xml)). По Mozilla Firefox кое-что есть здесь: http://www.toolbar.net.ru . Тем не менее, вопрос остается открытым... |
Автор: _hunter 10.5.2006, 19:09 |
во-первых: IE и Maxthon -- суть одно и то же. во-вторых: кто сказал что Opera, Mozilla -- надстройки? ну и в-третьих: все эти браузеры используют разные подходы к перехвату/взаимодействию => спрашивать лучше на форумах разработчиков. причем пример BHO для IE есть в MSDN' e для мозил есть FlashGot (его исходники доступны) |
Автор: BreakPointMAN 28.5.2006, 10:13 | ||||
Пффф... итак, возвращаясь к баранам... Получение текущего URL и текущего окна заголовка в браузерах. Насколько я понял, существует три основных способа решения данной задачи: 1) Извращения с окнами Очень ненадежный метод, с которым даже не хочется связываться. Заключается в том, чтобы находить буквально "вручную" нужные окна с помощью WinAPI-функций FindWindow, GetWindow и пр., а затем получать необходимую информацию с помощью функции GetWindowText, посылки сообщения WM_GETTEXT и т.д. Зачастую нужно знать классы окон и их tab-последовательность, причем не факт, что ни то, ни другое не изменится в следующих версиях браузеров, да и что будет, например, если я возьму и сотру адрес из поля ввода? ![]() 2) DDE Большинство браузеров являются DDE-серверами. Чтобы получить текущий URL, клиент должен установить соединение с сервером на тему (Topic) "WWW_GetWindowInfo" и выполнить запрос элемента данных (Item) "0xFFFFFFFF", результатом такого запроса будет строка c текущими адресом и заголовком окна:
Не очень удобно сделано, потому что потом эту строку еще нужно делить на составные части... Хорошо хоть, что они заключены в кавычки и разделены запятыми... но лучше, наверное, было бы, чтобы они передавались по-отдельности, или заключались в такие символы-разделители, которые не могут встретиться ни в адресе, ни в заголовке окна... Не знаю, могут ли встречаться кавычки и запятые в адресе, но в заголовке точно могут. Как отсюда корректно вырезать и то, и другое? Кстати, что за третья пустая строка, быть может, кто-нибудь знает? Она присутствует не всегда и не для всех браузеров... Ну, а код на C++ Builder'е (в котором я пишу) будет выглядить примерно так:
Вместо "IExplore" может, например, быть "Firefox" или "Mozilla" или "Opera"... Теперь достаточно кинуть на форму TDdeClientConv и TEdit и прописать где нужно, данный код. 3) COM А вот здесь, пока, полный мрак... Хотелось бы разобраться с тем, как можно выполнять те же самые задачи с помощью COM-технологии. Какие из браузеров ее поддерживают? Как это можно реализовать на C++ Builder? Приветствуются любые ссылки по теме. |
Автор: VictorGr 23.7.2007, 22:37 |
BreakPointMAN, пример COM: http://forum.vingrad.ru/forum/topic-164401/anchor-entry1202167/0.html Получать URL по DDE из IEXPLORER получается, но только самый крайний (последнюю открытую копию). А как можно перебрать все? Вообще очень интересным было бы установить WWW_RegisterURLEcho, чтобы IE сам сообщал о новых страницах. Знает ли кто-нибудь как такое осуществить? |
Автор: Klin 23.7.2007, 23:58 |
Ребят, вас, что в финннскомм институте биистроого реагииирования учат? |
Автор: cerf_machine 10.8.2007, 09:44 | ||
Не трогаем Финские универы, они Линуса выучили ![]() По сабжу: а чем не подходит BHO? При использовании ATL разработка плагина упрощается до невозможности. http://www.microsoft.com/rus/msdn/publish/articles/expie_hello_bho.mspx -- куда проще? |
Автор: _hunter 10.8.2007, 11:01 |
наверное и ты не заметил, но вопрос задавался больше года назад => сильно сомневаюсь что твои советы актуальны. а тем, что ни в опере ин в мозиле их нет. а про ие уже все сказали... |
Автор: malor 19.8.2009, 20:43 | ||
Удалось что-нить накопать по данному вопросу ? Интересует осуществление перехвата из FireFox. |