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

Вниз

Всё скрытое когда-нибудь становится явным....   Найти похожие ветки 

 
Митяй2 ©   (2002-07-06 09:33) [0]

Мастера, подскажите как в ловушке клавы
определить что произошло:
- нажали клавишу?
- отпустили клавишу?
- идёт повтор символов, когда клавиша нада

function Key_Hook(Code: integer; wParam: word; lParam: Longint): Longint;stdcall; export;
begin
// если Code>=0, то ловушка может обработать событие
if (Code >= 0) then
begin
if wParam=VK_CONTROL then // Отлавливаем только Ctrl
Begin
if (lParam and KF_UP)=KF_UP then // код отпускания (НЕ ПРОКАНЫВАЕТ!!!!!!!!!!)
begin
....

....

....


 
Митяй2 ©   (2002-07-06 09:48) [1]

Опечатка - идёт повтор символов, когда клавиша нада
Нужно читать - идёт повтор символов, когда клавиша нажата


 
Митяй2 ©   (2002-07-06 11:33) [2]

Всё МАСТЕРА, можете не отвечать сам разобрался методом научного тыка.

В lParam 2-ой байт (нумерация с 0) - scan code,
а биты 6 и 7 в 3-ем байте отвечают за происходящее.

нажатие

if (lParam and $40000000)=0 then <нажатие>
1 1101 0000 0000 0000 0001 (Ctrl, scan=11101)
10 0000 0000 0000 0000 0001 ("d" , scan=100000)


отпускание

if (lParam and $80000000)=$80000000 then <отпускание>
1100 0000 0001 1101 0000 0000 0000 0001
1100 0000 0010 0000 0000 0000 0000 0001



повтор
if (lParam and $80000000)=0 AND (lParam and $40000000)=$40000000 then <повтор>
100 0000 0001 1101 0000 0000 0000 0001
100 0000 0010 0000 0000 0000 0000 0001


 
Митяй2 ©   (2002-07-06 11:34) [3]

И заходите:

http://altnet.ru/~rus

НЕ ПОЖАЛЕЕТЕ! Посмеётесь от души!



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
14-14212
AL2002
2002-08-08 17:08
2002.09.05
Так есть прога, которая с дайджестами работает?


4-14322
valery_f
2002-05-13 15:00
2002.09.05
Unicode ---> ANSI


4-14329
cult
2002-07-04 17:07
2002.09.05
WM_CancelMode - с чем его едят?


1-14019
ZLODEY
2002-08-26 13:17
2002.09.05
СООБЩЕНИЯ


1-14159
Man-In-Red
2002-08-25 13:18
2002.09.05
Почему?