Форум: "WinAPI";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c