Функция проверяет нажаты ли определенные клавиши. От одной, до сочетания из трех. В качестве параметров используются виртуальные коды клавиш. [Виртуальные коды клавиш]
1 2 3 4 5 6 7 |
begin if getKeyStatebyCode(65) = True then ShowMessage('Клавиша "A" нажата') else ShowMessage('Клавиша "A" не нажата'); if getKeyStatebyCode(VK_CONTROL, VK_SHIFT, 65) = True then ShowMessage('Клавишы Ctrl+Shift+A нажаты') else ShowMessage('Клавиша Ctrl+Shift+A не нажаты'); end; |
Параметры
keyCode1, keyCode2, keyCode3 - виртуальные коды клавиш
Результат
True - если нажаты все проверяемые клавиши и False - если нет.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function getKeyStatebyCode(keyCode1:Integer=0; keyCode2:Integer=0; keyCode3:Integer=0) : Boolean; var State : TKeyboardState; k1, k2, k3: Boolean; begin k1:= True; k2:= True; k3:= True; GetKeyboardState(State); if keyCode1 <> 0 then k1:= ((State[keyCode1] and 128) <> 0); if keyCode2 <> 0 then k2:= ((State[keyCode2] and 128) <> 0); if keyCode3 <> 0 then k3:= ((State[keyCode3] and 128) <> 0); if (k1 = False) or (k2 = False) or (k3 = False) then Result:= False else Result:= True; end; |