Структура 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
Объединение следующих членов.

ЮникодChar
Переведенный символ Юникода.

AsciiChar
Переведенный символ ASCII.

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 и клавиши направления в кластерах слева от клавиатуры; и ключи деления (/) и ВВОД на клавиатуре.

События ввода клавиатуры создаются при нажатии или освобождении любого ключа, включая клавиши управления. Однако клавиша ALT при нажатии и освобождении без объединения с другим символом имеет особое значение для системы и не передается в приложение. Кроме того, сочетание клавиш CTRL+C не передается, если входной дескриптор находится в обработанном режиме (ENABLE_PROCESSED_INPUT).

Примеры

Пример см. в статье о чтении событий входного буфера.

Requirements

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхний колонтитул WinConTypes.h (через WinCon.h, включите Windows.h)

См. также

PeekConsoleInput

ReadConsoleInput

WriteConsoleInput

INPUT_RECORD