Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

Как перехватить клики в IE?   Найти похожие ветки 

 
kukuikar ©   (2004-09-13 13:17) [0]

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


 
Vitaly ©   (2004-09-13 13:25) [1]

navigate?


 
kukuikar ©   (2004-09-13 13:28) [2]

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


 
Ihor Osov'yak ©   (2004-09-13 14:13) [3]

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 14:44) [4]

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


 
Ihor Osov'yak ©   (2004-09-13 15:50) [5]

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

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

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

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


 
Ihor Osov'yak ©   (2004-09-13 15:53) [6]

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


 
kukuikar ©   (2004-09-13 15:59) [7]

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


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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
1-1094814005
HeKTO
2004-09-10 15:00
2004.09.26
HotKey


4-1092644424
Dmitry_K
2004-08-16 12:20
2004.09.26
GetSaveFileName


3-1093863655
Russko
2004-08-30 15:00
2004.09.26
Проблема с точкой и запятой.


8-1088693104
maxistent
2004-07-01 18:45
2004.09.26
Как сузить битмап?


3-1093611893
Kul_Alex
2004-08-27 17:04
2004.09.26
Добавление данных в БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский