Страница: 1 | 2 |
Вопрос: Работа с Internet Explorer_Server
Добавлено: 11.02.07 16:27
Автор вопроса: alenk
Всем привет!
У меня довольно необычная задача.
Пишу программу, которая должна получить HTML-код со странички, открытой в браузере IE, и изменить его на другой (заменить все нецензурные слова).
С самой заменой текста сложностей нету. Сложности у меня с получением этого HTML-кода и соответственно с его последующей записью в это же окно браузера.
Класс и хэндл окна я получить могу. Но как с ними работать?
WinSpy показывает класс окна IE - Internet Explorer_Server. Я нашла примеры где с ним работают, но там слишком все сложно. Неужели нет никаких API-шных функций, что бы получить текст окна. Я просто не могу понять, что именно нужно получать... Явно не Caption...
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #1
Добавлено: 11.02.07 18:31
Ну, эт явно неправильный способ. Во-перых никто не говорит, что если браузер - то IE, тем более у разных версий - разные классы окна. Окна IFRAME внутри страницы вообще имеют отдельные хэндлы.
Есть другой метод решения проблемы фильтрации мата. Необходимо написать локальный прокси-сервер, который будет просматривать траффик помеченный как html или text и фильтровать внутри эти слова. По-моему легче всего это сделать на Perl, однако вам виднее.
зы Программисты - девушки еще существуют?
Номер ответа: 2
Автор ответа:
alenk
Вопросов: 1
Ответов: 4
Профиль | | #2
Добавлено: 11.02.07 21:03
Ну конечно
Куда проще написать локальный прокси-сервер на перле, нежели чем прочитать хэндл окна )
Ну а если серьезно, то я же прошу всего лишь подсказать как осуществляется чтение/запись в окно, зная хэндл и класс. А там уж я под Оперу и ФФ сама разберусь...
Ведь если не ошибаюсь другие браузеры, использующие движок ИЕ, имеют у окна тот самый класс Internet Explorer_Server...
Fever, программисты-девушки существуют. Но для меня программирование это всего лишь хобби ))
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 12.02.07 19:27
Опера и ФФ не используют движок IE
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 13.02.07 01:02
И зная хендел врядли можно добраться до элементов/текста IE, нужно работать с объектной моделью через COM интерфейсы... вообщем не всё так просто. Из за разных браузеров наверное действительно проще на лету редактировать http трафик...
Номер ответа: 5
Автор ответа:
alenk
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 13.02.07 11:27
Sharp, ну там я думаю будет все аналогично )
Мне бы хотя бы под IE написать...
У меня есть код где текст, который просто выделяют мышкой в IE, сразу попадает в программу... Но там все сложно... Я видела примеры кода где все достаточно просто. Но там с caption работают.
Hacker, так ведь хэндл есть только у окна с текстом (HTML) и у ComboBox'ов. Не представляю если честно как через COM интерфейсы работать...
Так что вопрос все еще в силе
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 13.02.07 12:14
В сторону хенделов копать безполезно, ну найдёш ты дискриптор самого WebBrowser'a в нужном тебе окне, получить через этот дескрипор содержимое думаю практически невозможно... IE имеет COM сервер, к которому можно подключится и управлять IE из любого приложения. Пример вроде назывался "Astere" или как-то так, вообщем в нём демонстрировалось как текст скрытый за звёздочками в IE доставать... Когда буду дома могу пример скинуть, если к тому времени сама не найдёшь
Номер ответа: 7
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #7
Добавлено: 13.02.07 13:56
Всеже универсальным решением для всех браузеров будет написать что-то вроде фаервола Или найти уже готовый с возможностью блокировки рекламмы по ключевым словам (вроде как Аутпост это может)
Номер ответа: 8
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #8
Добавлено: 13.02.07 18:19
А как ты собираешься реализовать фаервол без прокси сервера? Перехват API? Или может еще что попроще?
Что там будет аналогично(если не секрет)? И вообще, тут не флудеры сидят(кажется), если сказали что это бесперспективняк, то скорее всего это так и есть?
Короче: берем WinSock Control, ставим на какой-нить порт, и перехваченный из браузера траффик просматриваем на наличие лексем <HTML> и </HTML>. Все, что между ними просматриваем на матные слова, заменяем на звездочки, пускаем назад в браузер. Усе.
Можно поподробнее? Хотя я уже догадываюсь как он работает - ловит MouseDown и MouseUp для окна и копирует текст в буфер обмена.
зы Случаем не блондинка?
Номер ответа: 9
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #9
Добавлено: 13.02.07 18:20
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 13.02.07 19:58
Неудобство будет заключаться в том, что придётся каждый браузер настраивать на свою проксю... Но в принципе, это не смертельно...
Номер ответа: 11
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #11
Добавлено: 13.02.07 20:09
Наиболее простой и переносимый вариант - WinPCap и никакого прокси не надо.
С Оперой и ФФ так же не получится, поскольку они, если я не ошибаюсь, не реализуют COM-интерфейс или не открывают его сторонним программам.
Если не нравится вариант со сниффингом, можно использовать BHO (для IE) и расширения для FF. В Опере, афаик, можно использовать виджеты.
Номер ответа: 12
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #12
Добавлено: 14.02.07 13:09
Это тот, который NMap использует?
Номер ответа: 13
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #13
Добавлено: 14.02.07 14:56
Его много кто использует
Номер ответа: 14
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #14
Добавлено: 14.02.07 15:49
А вариант с использованием в IE встроенным матофильтром не рассматривали? (IE > Сервис > Св-ва обозревателя > Содержание > Включить)
Я не пробовал, но может его не зря сделали? Хотя... MS.
Еще мысля есть. Реализовать замену матов прямо в загруженном EXE (iexplore.exe, opera.exe и т.п.) по принципу ArtMoney, но это уже чисто абстрактная мысль
Номер ответа: 15
Автор ответа:
alenk
Вопросов: 1
Ответов: 4
Профиль | | #15
Добавлено: 15.02.07 11:44
Fever, - как писали на башорге: НЕТ, БРЮНЕТКА ))
Вот ссылочка на тот код - http://www.vbnet.ru/forum/show.aspx?id=36776
Sharp, - WinPCap... очень интересно. Посмотрю. Спасибо.