Как считать состояние и программно переключить Caps Lock, Num Lock и Scroll Lock?
Для этого надо воспользоваться процедурами API:
которые возвращают и устанавливают, соответственно, состояния всех клавиш. Некоторые коды клавиш приведены ниже:
Пример:
Меняем состояния клавиш Caps Lock, Num Lock и Scroll Lock на противоположное:
procedure GetKeyboardState(var KeyState: TKeyboardState); procedure SetKeyboardState(var KeyState: TKeyboardState);
которые возвращают и устанавливают, соответственно, состояния всех клавиш. Некоторые коды клавиш приведены ниже:
Клавиша | Код | Клавиша | Код | Клавиша | Код |
Caps Lock | 020 | Shift | 016 | Insert | 045 |
NumLock | 144 | Contrl | 017 | Delete | 046 |
Scroll Lock | 145 | Alt | 018 | Tab | 009 |
Пример:
Меняем состояния клавиш Caps Lock, Num Lock и Scroll Lock на противоположное:
VAR KS: TKeyboardState; begin GetKeyboardState(KS); KS[020] := KS[020] XOR 1; KS[144] := KS[144] XOR 1; KS[145] := KS[145] XOR 1; SetKeyboardState(KS); end;