Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как перехватить клики в IE? [D6, WinXP]


kukuikar ©   (2004-09-13 13:17:00) 

Как перехватить клики в IE?


ЮрийК   (2004-09-13 20:08:00) [1]

А такой вопрос, в броузере рисуется джава-окно, в этом окне есть например линк, кнопка и т.д. Как возможно эмулировать программно клик на соответствующий элемент в окне? Возможно ли?


kukuikar   (2004-09-13 15:59:00) [2]

спасибо, разобрался.


Ihor Osov'yak   (2004-09-13 15:53:00) [3]

в общем-то работа с интерфейсами IE довольно подробно описана в мсдн, я Вам набросал много "ключевых" слов - попытайтесь сделать поиск по ним. Или разберетесь сами, или сможете более внятно сформулировать вопрос.


Ihor Osov'yak   (2004-09-13 15:50:00) [4]

есть подозрение, что Вам все же нужно перехвачивать начало навигации от кликов по ссылкам, то есть результат самих кликов, а не клики.. ..

Если это так - см. BeforeNavigation2 и NewWindow2 для DWebBrowserEvents2 + подписка на получение этой нотификации,
или как частный случай  - OnBeforeNavigation2 и OnNewWindow2  для TWebBrowser. Если  все же интересует нотификация от внешнего IE - то алгоритм примерно таков - по хендлу окна клиентской области ИЕ можно получить IHTMLDocument2, от него получаем IWebBrowser2, имея в руках IWebBrowser2 можно сделать подписку на нотификацию согласно DWebBrowserEvents2...
Более подробно на эту тему не пишу, так как не понятно - нужно ли Вам все же этот вариант...

Если все же клики - то см. [3]

Зы. Ссылки могут быть не только ведущие к навигации, а вызывающие всякие алерты и тп.. Для контроля за результатами кликов по таким видам ссылок - нужно обратить внимание на IDocHostUIHandler, как пример реализации - TEmbedвedWB - см. http://www.euromind.com/iedelphi


kukuikar   (2004-09-13 14:44:00) [5]

да, неправильнй вопрос - неправильный ответ.
Хочу перехватывать клики по ссылкам в ИЕ.


Ihor Osov'yak   (2004-09-13 14:13:00) [6]

2 [1] Vitaly ©   (13.09.04 13:25)

неа.

2 [2] kukuikar ©   (13.09.04 13:28)

Хотелось бы ошибиться, но судя по Вашей реплике, эта проблема для вас рановата..
Если же я ошибаюсь - то проблему можно решить тремя способами (если буквально понимать Ваш вопрос, то есть все же клики, а не попытку к навигации, как следствие кликов)...

1. Подписка на нотификацию от IHtmlDocument2, я имею ввиду HTMLDocumentEvents2::onmousedown Event, техника подробно описана в MSDN и не только

2. Можно делать подписку на нотификацию от IHTMLElement, а именно HTMLElementEvents::onclick Event, но проблема в том, что эти элементы подгружаются-выгружаются, их много, поэтому на практике этот способ мало пригоден. Реально можно попытатся поставить перехват на вызов методов соотв. интерфейса, но этот способ я не прорабатывал - посему перспективность его не буду гарантировать + это немного из области недокументированных решений. Что не всегда есть хорошо.

3. Перехват виндозных сообщений к окну, хостящему обьект, который предоставляет IWebBrowser2.. В отличие от способа 1 немного напоминает лазание в окно для случая наличия незапертой двери.


kukuikar   (2004-09-13 13:28:00) [7]

чуть более пожробно, если несложно...


Vitaly   (2004-09-13 13:25:00) [8]

navigate?


Наверх

Титульная страница Поиск, карта сайта Написать письмо