| | | | |
Hooks - аспекты реализации | Полный текст материала
Цитата или краткий комментарий: «... Моя обзорная статья на тему вариантов использования динамически компонуемых библиотек (DLL) вызвала множество вопросов, большая часть которых касалась использования глобальных ловушек (Hook) и размещению разного рода ресурсов в DLL. О ресурсах поговорим в следующий раз, а пока попробуем разобраться с ловушками. ...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 10 | 83.3% | | | | Ничего особенно нового и интересного | [2] | 0 | 0% | | | | Написано неверно (обязательно укажите почему) | [3] | 2 | 16.7% | | Всего проголосовали: 12 | | | Все понятно, материал читается легко | [1] | 8 | 88.9% | | | | Есть неясности в изложении | [2] | 1 | 11.1% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 9 |
[Системные ловушки (HOOK)]
Отслеживать это обсуждение
Всего сообщений: 1530-04-2010 07:56Здравствуйте. Спасибо за замечательную статью, но есть проблемка. У меня все нажатые в основном дублируются а вообще часто вводится по 3-4 копии.
Подскажите как с этой проблемой бороться? |
|
28-07-2009 10:38Аккуратнее, написано верно, но в примерах есть ошибки реализации.
См., например »вопрос КС №57810«
Да, ошибочка досадная, споткнулся уже))
А в целом статья замечательная. |
|
25-02-2008 03:01Кто нибудь поправит статью? А то очень нехорошо получается:
(code : integer; wParam : word; lParam : longint)
И ещё раз - LowLevel's прекрасно ставятся из .эхэ |
|
25-12-2007 06:08Аккуратнее, написано верно, но в примерах есть ошибки реализации.
См., например »вопрос КС №57810« |
|
05-07-2006 02:16Ссылка на архив поправлена |
|
04-07-2006 21:43ссылка на зип не работает |
|
11-05-2004 19:04Хуки по крайней мере в вин200 можно ставить из программы!!! необязательно длл и всякое такое!!! МСДН по этому поводу говорит что процедурам обработки хуков __посылаются__ мессаги и их обрабатывает установленная процедура в потоке установившем данный хук, из чего следует что у хук должен ставить поток имеющий очередь сообщений.
короче конструкция:
Function LowLevelMouseProc(
nCode : LongInt ; // hook code
wParam : WPARAM ; // message identifier
lParam : LPARAM // message data
) : LRESULT; stdcall;
begin
//-----
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
HHook:=SetWindowsHookEx(
WH_MOUSE_LL,
LowLevelMouseProc,
GetModuleHandle('HookInstaller.exe'),0);
end;
где LowLevelMouseProc процедура описанная в этом же модуле.
вполне работает!
|
|
03-09-2003 15:40отдельные ловушки с успехом могут жить в EXE (а не в DLL).
например ловушки SetWinEventHook и WH_KEYBOARD_LL
по ссылке http://rattlesnake.at.box.sk/newsread_print.php?newsid=193 лежит пример ловушки WH_KEYBOARD_LL без DLL. но автор статьи ссылки заблуждается, думая, что так можно сделать любую WH_* ловушку.
|
|
14-07-2003 13:27В примере клавиатурного хука введенные с клавиатуры символы отображаются в основном дважды, иногда больше! Это только у меня? Можнио ли как-то от этого избавиться? Сообщение не подписано |
|
05-12-2002 17:02Небольшое дополнение из собственных исследований:
В системах Windows NT/Win2k/WinXp одновременно могут быть установлены максимум 32 разные DLL, содержащие глобальные хуки. Это хуки, установленные функциями SetWindowsHookEx, SetWinEventHook и RegisterUserApiHook (только для Windows XP).
Я понимаю, что в большинстве случаев этот предел вряд ли удастся превысить, но все же :-)
С уважением,
|
|
25-09-2002 14:53Архив не распаковывается.И размер 12к вместо 76... |
|
10-04-2002 22:04Молодец, Алеша!
Так держать!
Береги свое здоровье! |
|
27-03-2002 18:37Отличный материал ! Статья помогла мне наконец-то разобраться с этими хуками и механизмом распределённых адресных пространств.
Чувствуется проффесиональный подход. К тому же приятно, что автор в том же универе, что и я учится. |
|
25-03-2002 18:18>> Erik Ivanov:
Хотел что бы всё было понятно даже совсем 'непродвинутым' программистам. От того, наверное, и излишняя скурпулёзность в объяснениях, которая, возможно, приводит к путанице.
В следующий раз постараюсь быть 'проще' :) |
|
22-03-2002 14:33Стиль немного тажеловат, примеры слегка запутаны. Типа поиди на лево сверини на прваво, после 100м вперед и еже зар на лево после третего поворота. |
|
|
|