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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
1-50752
Сергей01
2002-09-04 01:29
2002.09.16
Можно ли получить AutoSize в RichEdit Или возможность писать ....


7-50998
Goleg
2002-06-27 19:27
2002.09.16
Помогите разобраться с прогой использующей модем


7-50989
@andrew
2002-07-04 15:49
2002.09.16
Привет Всем! Порты. Подскажите чего-нибудь. Надо сделать


4-51031
vixic
2002-07-26 10:20
2002.09.16
DLL + API = MainMenu


1-50674
YAndrey
2002-09-02 15:08
2002.09.16
Хелп!!! Что за глюка с прерыванием !!! TP7