KEY_EVENT_RECORD
Структура
KEY_EVENT_RECORD
используется для получения входных событий в консольной структуре
INPUT_RECORD
.
typedef struct _KEY_EVENT_RECORD { BOOL bKeyDown; WORD wRepeatCount; WORD wVirtualKeyCode; WORD wVirtualScanCode; union { WCHAR UnicodeChar; CHAR AsciiChar; } uChar; DWORD dwControlKeyState; } KEY_EVENT_RECORD;
Элементы
bKeyDown
Равно
TRUE
если клавиша нажата, иначе FALSE
. wRepeatCount
Число повторов нажатия клавиши.
Например, когда клавиша нажата, вы можете получить пять сообщений с
этим членом равным 1, одно сообщение с равным 5, или несколько сообщений
с элементом большим, либо равным 1.
wVirtualKeyCode
Виртуальный код клавиши, определяющий данную клавишу в независимой
от устройства форме.
wVirtualScanCode
Виртуальный скан-код клавиши. Определяет устройство-зависимое значение,
генерируемое аппаратурой клавиатуры.
uChar
Переведённый Unicode или ASCII символ, в зависимости от того,
использовалась Wide- или ANSI-версия функции ReadConsoleInput.
dwControlKeyState
Состояние управляющих клавиш. Может быть комбинацией следующих значений:
Клавиша | Значение | Описание |
---|---|---|
CAPSLOCK_ON | 0x0080 | CAPS LOCK включён. |
ENHANCED_KEY | 0x0100 | Клавиша расширенная. |
LEFT_ALT_PRESSED | 0x0002 | Левый ALT нажат. |
LEFT_CTRL_PRESSED | 0x0008 | Левый CTRL нажат. |
NUMLOCK_ON | 0x0020 | NUM LOCK включён. |
RIGHT_ALT_PRESSED | 0x0001 | Правый ALT нажат. |
RIGHT_CTRL_PRESSED | 0x0004 | Правый CTRL нажат. |
SCROLLLOCK_ON | 0x0040 | SCROLL LOCK включён. |
SHIFT_PRESSED | 0x0010 | Клавиша SHIFT нажата. |
Замечания
Расширенные клавиши для IBM® 101- и 102-х клавишных
клавиатур - это INS, DEL, HOME, END, PAGE UP, PAGE DOWN, клавиши курсора,
клавиша divide (/) и ENTER на цифровой части.
Сообщения клавиатурного ввода генерируются, когда любая клавиша, включая управляющую, нажата или отпущена. Однако, когда клавиша ALT нажимается и отпускается, это имеет специальное значение в Windows и такое событие не передаётся приложению. Также сочетание CTRL+C не передаётся, если хендл входной консоли имеет флаг
Сообщения клавиатурного ввода генерируются, когда любая клавиша, включая управляющую, нажата или отпущена. Однако, когда клавиша ALT нажимается и отпускается, это имеет специальное значение в Windows и такое событие не передаётся приложению. Также сочетание CTRL+C не передаётся, если хендл входной консоли имеет флаг
ENABLE_PROCESSED_INPUT
.
Смотрите также: