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

Вниз

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

 
bloodman ©   (2003-07-14 20:18) [0]

Здравствуйте мастера.В своей программе я перехватываю сообщение WH_KEYBOARD.Как мне Узнать нажата ли клавиша Shift или Caps Lock ?? И еще как я могу узнать сколько раз нажата клавиша.Читал про это сообщени, но не понял: чтобы узнать сколько раз нажата клавиша нужно просмотреть первые 15 бит lparam и перевести полученное число в десятичную систему??

Заранее спасибо.


 
Dw   (2003-07-14 23:53) [1]

Я вот так делаю:

.....
Caps, Shift: byte;
......
Caps:=(Lo(GetKeyState(VK_CAPITAL)));
Shift:=(Byte(Hi(GetKeyState(VK_SHIFT)) xor $FF + 1));

1 - клавиша нажата, 0 - не нажата
Может и извратно :) , но работает.


 
bloodman ©   (2003-07-15 01:53) [2]

Спасибо , но я уже сам додумался :) Вот мой вариант:

GetKeyboardState(KeyState);
IF ((KeyState[VK_Shift] and $80) <> 0) then
Shift on
else
Shift off



 
Юрий Зотов ©   (2003-07-15 06:15) [3]

Проще можно:
if GetKeyState(VK_SHIFT) < 0 then
Shift on
else
Shift off



 
bloodman ©   (2003-07-15 13:34) [4]

Да, наверное и так можно. Я тоже так пытался , только вместо if GetKeyState(VK_SHIFT) < 0 then поставил if (GetKeyState(VK_SHIFT) and $80) <> 0 then и у меня ничего не заработало. Поэтому и взал
GetKeyboardState.



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
7-48796
Alex_x
2003-07-02 10:09
2003.09.15
Определение принтеров и звуковой карты установлених в системе


14-48736
AlexRya
2003-08-26 22:43
2003.09.15
В Mozilla сайт не отображается


14-48722
Denkop
2003-08-26 17:05
2003.09.15
Оффтопик% как в PHP распаковать tar архив


3-48400
Nikolay M.
2003-08-26 09:57
2003.09.15
MS SQL weekly backup - ?


1-48590
yurchello
2003-09-03 05:03
2003.09.15
Excel