![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Benedict |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.6.2003 Репутация: нет Всего: нет |
Господа ,подскажите плиз, как можно организовать мониторинг клика по ссылке и перехват этой ссылки?
Тоесть, есть окно браузера (IE), есть програмулинка. Пользователь щелкает в браузере по ссылке, поргамуля ловит эту ссылку и после сравнения либо выдает сообщение либо ждет следующего клика. Все казалось бы просто, но ни где не могу найти информации как реализовать сам мониторинг и перехват нажатой ссылки. Буду благодарен за советы. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Может хуком на мышку?
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Guest_Benedict |
|
|||
|
Unregistered |
И это весь ответ
|
|||
|
||||
| eof |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 30.5.2003 Репутация: нет Всего: нет |
<Spawn> а как узнать, что клик произошел над ссылкой? как узнать адрес ссылки?
Плохо знаю как все это барахло работает (IE имеется в виду), но могу для того что бы было где копать предложить вариант: Написать самому браузер (...\DelphiN\Demos\CullStuf\...), у компонента WebBrowser1 использовать событие BeforeNavigate2... Вариан конечно так себе, но мне кажеться, что если порыть исходники, то можно чтонить найти. |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Можно подключиться к запущенному IE, и через его интерфейсы получить это событие. В двух словах принцип простой: GetActiveObject("IE_GUID") -> QueryInterface("Нужный интерфейс"). Более подробно - лень. Только есть нюансов много: надо отлавливать запуск IE, пользователь может пользоваться другим браузером. В принципе, хук на мышку тоже решение, определит что это ссылка можно по формату строки, над которым мышка находиться, но этот линк может быть открыт в notepad для редактирования и тогда клик по нему вовсе не означает переход по нему. Вобщем, задача не такая тривиальная.
-------------------- Волны гасят ветер... |
|||
|
||||
| Benedict |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.6.2003 Репутация: нет Всего: нет |
GetActiveObject("IE_GUID") -> QueryInterface("Нужный интерфейс")
1. QueryInterface - Это что? 2. А какой именно нужный или где почитать об интерфейсах? 3. Именно IE все остальное не интересует. И точно известно, что он запущен... Но вот окон может быть несколько. Как тут быть? А вообще, огромное спасибо. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
QueryInterface - метод интрфейса IUnknown, который используется для получения клиентом ссылок на интерфейс. А вообще, если тебе хочется получше разобраться в технологии COM, то прикупи книжечку "Delphi 6 и технология COM" авторов Н. Елманова, С. Трепалин, А. Тенцер из которой я и взял данное определение.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
В общем, для тех у кого Делфи 7.
Ежели Делфи 6 или 5, то TInternetExplorer можно заменить на TWebBrowser -------------------- Волны гасят ветер... |
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
Можно ещё попробовать капнуть в направлении качалок. Там есть скрипт, который определяет запустить ему качалку, или пропустить дальше.
Это сообщение отредактировал(а) Mikel - 28.6.2003, 12:49 -------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| Benedict |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.6.2003 Репутация: нет Всего: нет |
Прости, а что это? Как это расшифровать? Не мог бы ты описание добавить к коду? Заранее спасибо. |
||||
|
|||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
А что тут не понятного? TWebBrowser (TInternetExplorer) - это обертка над COM интерфейсами, которые предоставляет IE. C помощью GetActiveObject, нажодим запущенный экземпляр IE, и если он есть, подключаем его к обертке. Далее, используя эту обертку, вешаем обработчик на событие OnBeforeNavigate. Это, конечно, не отлов клика по ссылке, но почти.
-------------------- Волны гасят ветер... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |