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

Вниз

Подскажите как перехватить клаву.   Найти похожие ветки 

 
DAnton   (2004-07-23 12:52) [0]

В винде, а не в своем приложении, и в определённом окне.

Лучше всего примерчик, или где примерчик взять.


 
grom   (2004-07-23 13:38) [1]

Отследить события мыши и клавиатуры во всей Windows
--------------------
var
 HookHandle: hHook;

function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
 msg: PEVENTMSG;
 key: integer;
begin
 if Code >= 0 then begin
   result := 0;
   msg := Pointer(LParam);
   with Form1 do
     case msg.message of
       WM_MOUSEMOVE: Caption := IntToStr(msg.ParamL) + #32 + IntToStr(msg.ParamH);
       WM_LBUTTONDOWN: CheckBox1.Checked := true;
       WM_LBUTTONUP: CheckBox1.Checked := false;
       WM_RBUTTONDOWN: CheckBox2.Checked := true;
       WM_RBUTTONUP: CheckBox2.Checked := false;
       WM_KEYUP: CheckBox3.Checked := false;
       WM_KEYDOWN: begin
         CheckBox3.Checked := true;
         key := msg.paramL and 255;
         if key in [48..57, 65..90]
           then Edit1.Text := Edit1.Text + chr(key);
       end;
     end;
 end else
   result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.FormStyle := fsStayOnTop;
 CheckBox1.Caption := "left button";
 CheckBox2.Caption := "right button";
 CheckBox3.Caption := "keyboard";
 HookHandle := SetWindowsHookEx(WH_JOURNALRECORD, @HookProc, HInstance, 0);
 Edit1.Text := "";
 Edit1.Enabled := false;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 if HookHandle > 0 then
   UnhookWindowsHookEx(HookHandle);
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.028 c
1-1092736455
FastByte
2004-08-17 13:54
2004.09.05
Унарный минус в ОПЗ


14-1092668010
Паскальные надписи
2004-08-16 18:53
2004.09.05
Генератор случайных чисел


3-1092141651
Diman
2004-08-10 16:40
2004.09.05
Как записать данные из DBGrid в Excel-формат?


9-1084693130
djxxx
2004-05-16 11:38
2004.09.05
Как создать форму в DLL


14-1092655247
Григорьев Антон
2004-08-16 15:20
2004.09.05
Просто порадовала шутка :))