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

Вниз

Проверка SetWindowsHookEx   Найти похожие ветки 

 
alex-drob   (2005-05-23 22:28) [0]

Есть процедура в dll
procedure keyLock(val:boolean); stdcall; export;
begin
 if val then
   idKeyHook:=SetWindowsHookEx(WH_KEYBOARD,@keyHookFunc,hInstance,0)
 else
   UnhookWindowsHookEx(idKeyHook);
end;

Как зделать проверку чтобы нельзя было вызвать два раза подряд keyLock(true)


 
Eraser ©   (2005-05-24 00:26) [1]

alex-drob   (23.05.05 22:28)

if idKeyHook = 0 then
 exit;


 
Eraser ©   (2005-05-24 00:27) [2]

Sorry, замени = на <> !!!


 
alex-drob   (2005-05-24 00:37) [3]

Так не работает.
после keyLock(true) клавиатура блокируется
после keyLock(false) разблокируется
а если ещё раз вызвать keyLock(true) то клавиатура остаётся разблокированной.


 
alex-drob   (2005-05-24 00:44) [4]

После
UnhookWindowsHookEx(idKeyHook);
idKeyHook не становиться равное 0.


 
False_Delirium ©   (2005-05-24 01:01) [5]

if val then
   if idKeyHook = 0 then
     idKeyHook := SetWindowsHookEx(WH_KEYBOARD,@keyHookFunc,hInstance,0)
 else
   if UnhookWindowsHookEx(idKeyHook) <> 0 then
     idKeyHook := 0
   else
   // ошибка, поругаться

  UnhookWindowsHookEx(idKeyHook);

? :)


 
alex-drob   (2005-05-24 01:16) [6]

Спасибо помогло!!!

только
UnhookWindowsHookEx(idKeyHook) <> 0
ошибка
а хоть так
UnhookWindowsHookEx(idKeyHook) <> true
хоть так
UnhookWindowsHookEx(idKeyHook) = true
работает!



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

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

Наверх




Память: 0.48 MB
Время: 0.049 c
4-1116328694
Квас
2005-05-17 15:18
2005.07.18
Производитель CD


1-1119785382
Sower
2005-06-26 15:29
2005.07.18
Чтение из конца в начало.


14-1119529088
Суслик
2005-06-23 16:18
2005.07.18
Как сделать удаленный вызов.


1-1119852787
anarhi
2005-06-27 10:13
2005.07.18
stringgrid


3-1118134093
Mister
2005-06-07 12:48
2005.07.18
&amp;#1058;&amp;#1072;&amp;#1073;&amp;#1083;&amp;#1080;&amp;#1094;&amp;#1072; &amp;#1080; &amp;#1077;&amp;#1076;&amp;#1080;&amp;#1090;