Форум: "Система";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
ВнизKeyboard hook Найти похожие ветки
← →
aaZ (2002-06-22 18:19) [0]
Var HookHandle:hHook;
CharsInputed:String="";
Function KeyboardProc(Code: integer; WParam: WParam; LParam: LParam): LResult; stdcall;
Type TWParamTranslation=Record
Byte12:Word;
Byte3:Byte;
Byte4:Byte;
End;
Begin
If TWParamTranslation(LParam).Byte4 and 128<>0 Then
CharsInputed:=CharsInputed+Chr(WParam);
End;
Procedure StartHook; //Стартует перхват клавиатуры
Begin
CharsInputed:="";
HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, Hinstance, 0);
End;
Procedure StopHook;
Begin
UnhookWindowsHookEx(HookHandle);
End;
В принципе работает, только эта процедура перехватывает событие и не передает его далее, т.е. клавиатура как бы недоступна для других приложений... И еще, если это приложение не активно, то Винда на время подвешивается и закрывается парочка окошек или программ. Кто-нибудь знает, как этого избежать?
← →
easy (2002-06-22 18:47) [1]CallNextHookEx
см: http://delphi.mastak.ru/articles/hooks/index.html
← →
aaZ (2002-06-24 00:43) [2]А почему окна закрываются?
← →
Sasha9 (2002-06-24 19:02) [3]условие
If TWParamTranslation(LParam).Byte4 and 128<>0 Then
будет выполняться всегда т.к. дельфи - не си и 128 - не 0
← →
aaZ (2002-06-29 01:04) [4]Так что делать :(???
← →
Андрей Штим (2002-07-05 09:53) [5]Попробуй все запихать в dll
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c