Главная страница
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.029 c
1-48649
SiRex
2003-09-02 00:35
2003.09.15
Проблемка: RichEdit + Русские символы


1-48541
Raper
2003-09-02 11:28
2003.09.15
Как использовать функцию BinToHex, HexToBin


6-48675
kalishenko
2003-07-10 21:38
2003.09.15
Отправка почты с вложением файла


3-48413
eds
2003-08-25 17:40
2003.09.15
Есть ли у кого нибудь демка по работе с TreeView компонентом?


1-48647
YY
2003-09-03 00:49
2003.09.15
Странные эффекты с размером программы в памяти