Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Здравствуйте, небольшой вопросик по ф-ии ловушки на клаву   Найти похожие ветки 

 
trubin   (2006-06-21 14:54) [0]

Здравствуйте, небольшой вопросик по приведенной ниже простенькой ф-ии ловушки на клаву:

function KeybHookProc(Code: Integer; wParam, lParam: Longint):Longint; stdcall;
begin
 case Code of
   HC_ACTION:   Result:=0;
   HC_NOREMOVE: Result:=0;
 else
   Result:=CallNextHookEx(gGlobalData^.HookHandle, code, wParam, lParam);
 end;  
end;

В документации указано, что в случае (Code = HC_ACTION | HC_NOREMOVE) если возвращаемое значение будет = 0, то windows передаст сообщение в целевое окно, ПРОПУСТИВ ЕГО ЧЕРЕЗ ОСТАВШИЕСЯ ЛОВУШКИ В ЦЕПОЧКЕ, но у меня почему-то следующие ловушки не вызываются, вызов слуедующей ловушки происходит если в любом случае вызывать CallNextHookEx, может кто-нибудь подскажет почему?


 
Игорь Шевченко ©   (2006-06-21 15:30) [1]


> может кто-нибудь подскажет почему?


Согласно документации.

"Calling the CallNextHookEx function to chain to the next hook procedure is optional, but it is highly recommended; otherwise, other applications that have installed hooks will not receive hook notifications and may behave incorrectly as a result. You should call CallNextHookEx unless you absolutely need to prevent the notification from being seen by other applications. "


 
trubin   (2006-06-21 22:26) [2]

В продолжение темы: кто-нибудь знает почему вышеупомянутая ф-я на одно однократное нажатие клавиши (имеется ввиду нажать и сразу отпустить) вызывается 4 раза - сначала 2 с совершенно одинаковыми wParam и lParam, и затем 2, где у lParam меняются на единицы 30 и 31 биты(ну это понятно). Я думал должно быть всего 2 вызова - один на нажатие и один на отпускание клавиши?


 
trubin   (2006-06-21 22:44) [3]

Извиняюсь, все правильно, ф-я вызывается 2 раза, стормозил, 2 раза ловушку ставил.



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

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.035 c
2-1161454380
Officeman
2006-10-21 22:13
2006.11.05
ShellExecute(0, , http://www.delphimaster.r , , SW_SHOW);


2-1161084317
Ezorcist
2006-10-17 15:25
2006.11.05
Как решить ошибку несовпадения типов TBitmap и tagBitmap?


2-1161530492
***mikle***
2006-10-22 19:21
2006.11.05
Глюк в Делфе или у меня?


15-1161175439
zdm
2006-10-18 16:43
2006.11.05
dinamiv var bds2006


2-1160907447
Kolan
2006-10-15 14:17
2006.11.05
Правильно сложить 2 дин. массива