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

Вниз

keys   Найти похожие ветки 

 
race1   (2004-07-25 13:27) [0]

как "правильнее" обрабатывать нажатия клавиш клавиатуры? если ловить wm_keydown\up, они не покажут, например, что нажата кнопка alt (одна, без сочетания), почему-то для некоторых F неработает (F9-F11). ну и хотелось бы больше контроля на клавиатурой, что бы без особых усилий определять нажатия навороченных комбинаций вроде alt+r, ctrl+alt+shift+F5
ещё бы хотелось преобразования кодов клавиш в их название

да, всё на winapi


 
VMcL ©   (2004-07-25 14:02) [1]

>>race1  (25.07.04 13:27)

Локальный хук подойдёт?


 
grom   (2004-07-25 18:27) [2]

может это подойдет
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
 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;


 
race1   (2004-07-26 08:09) [3]

значит хуки, если они дают полный контроль над клавой :)


 
VMcL ©   (2004-07-26 11:18) [4]

>>race1  (26.07.04 08:09) [3]

Более менее полный контроль даёт драйвер.



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

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

Наверх




Память: 0.47 MB
Время: 0.045 c
1-1093722914
UserUserov
2004-08-28 23:55
2004.09.12
случайные числа


4-1091081974
shvez_igor
2004-07-29 10:19
2004.09.12
Управления Фотошопом в програме на Делфи


1-1093626070
Lord de Mon
2004-08-27 21:01
2004.09.12
Как после клика на пункте меню открыть определённую страницу в бр


6-1089175823
Рамиль
2004-07-07 08:50
2004.09.12
Отключение сети/соединения к интернету


1-1093508174
DimonNew
2004-08-26 12:16
2004.09.12
Путь, откуда был вызван exe