![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка SetWindowsHookEx [D7, WinXP]
alex-drob © (2005-05-23 22:28:00)Есть процедура в dll
procedure keyLock(val:boolean); stdcall; export;
begin
if val then
idKeyHook:=SetWindowsHookEx(WH_KEYBOARD,@keyHookFunc,hInstance,0)
else
UnhookWindowsHookEx(idKeyHook);
end;
Как зделать проверку чтобы нельзя было вызвать два раза подряд keyLock(true)
alex-drob (2005-05-24 01:16:00) [1]Спасибо помогло!!!
только
UnhookWindowsHookEx(idKeyHook) <> 0
ошибка
а хоть так
UnhookWindowsHookEx(idKeyHook) <>true
хоть так
UnhookWindowsHookEx(idKeyHook) =true
работает!
False_Delirium (2005-05-24 01:01:00) [2]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 00:44:00) [3]После
UnhookWindowsHookEx(idKeyHook);
idKeyHook не становиться равное 0.
alex-drob (2005-05-24 00:37:00) [4]Так не работает.
после keyLock(true) клавиатура блокируется
после keyLock(false) разблокируется
а если ещё раз вызвать keyLock(true) то клавиатура остаётся разблокированной.
Eraser (2005-05-24 00:27:00) [5]Sorry, замени = на <> !!!
Eraser (2005-05-24 00:26:00) [6]alex-drob (23.05.05 22:28)
if idKeyHook = 0 then
exit;