![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Hook на клаву
EleKtroNik © (2002-10-06 18:46:00)Народ, здрасте.
Такая тема значит, ставлю хук на клаву.
Усе ставится, но ф-я двараза возвращает ее код!
Как эту муру исправить!!
Зарние спасибо тем кто поможет.)
EleKtroNik (2002-10-10 20:28:00) [1]
> Юрий Зотов
Спасибо.) Сегодня проверю.
Юрий Зотов (2002-10-09 21:46:00) [2]Если это хук на клаву (WH_KEYBOARD), то конструкция
TMsg(Pointer(lParam)^).message
по меньшей мере странная. Поскольку никак не соответствует смыслу LParam для этого типа хуков.
Формально, ошибки нет. Но вот условие
TMsg(Pointer(lParam)^).message = WM_KEYDOWN
вряд ли когда-либо выполнится.
Видимо, поэтому и "не ловит". Хорошо еще, что не дает Access Violation из-за обращения по "левому" адресу Pointer(lParam).
Проверяйте проще:
if LParam > 0 then ... // это DOWN
EleKtroNik (2002-10-09 19:52:00) [3]Пробовал так:
if TMsg(Pointer(lParam)^).message = WM_KEYDOWN then begin
showmessage(inttostr(wparam));
А он вообще нечего не ловит(Мать его...
Мля можен есть соображения какие?
vidiv (2002-10-09 07:02:00) [4]Народ, а кто знает как сделать системный хук без DLL? Я знаю как!
Юрий Зотов (2002-10-08 23:36:00) [5]Вот теперь вижу. Две вещи.
1. Что Хонь-юнь все же телепат, поскольку угадал (но мог и не угадать, поскольку Down/Up - не единственная возможная причина).
2. Что в коде лишнего больше, чем нужного. Вот эта штука делает абсолютно то же самое.
function KbH(Code, WParam, LPparam: LongInt): LongInt; stdcall;
begin
ShowMessage(IntToStr(WParam));
Result := CallNextHookEx(KbHook, Code, WParam, LParam)
end;
EleKtroNik (2002-10-08 22:55:00) [6]2Хонь-юнь
Да именно так.
> Юрий Зотов
Поскольку Вы не телепат привожу код:
function KbH(code: Integer; wparam: Word; lparam: LongInt):longint;stdcall;
var
b:byte;
begin
// if (code<0) then
if (code<0) then
Result:=CallNextHookEx( KbHook, code, wparam,lparam )
else begin
b:=wParam;
showmessage(inttostr(b));
result:=CallNextHookEx( KbHook, code, wparam,lparam );
end;
end;
Зарание благодарен.|
Хонь-юнь (2002-10-08 11:53:00) [7]>два раза
Button up + Button down?
Юрий Зотов (2002-10-08 11:39:00) [8]Может, и мастера, может, и нет - но уж точно не телепаты.
Где код хука? Или Вы думаете, что кто-то умеет находить ошибки, не видя кода?
EleKtroNik (2002-10-07 18:35:00) [9]Что, ни кто не знает?
Жаль.("Мастера"
EleKtroNik (2002-10-06 18:55:00) [10]Да, давно видел подобныи вопрос, но наити его не
удалось(