KEY_EVENT_RECORD
The KEY_EVENT_RECORD
structure is used to report keyboard input events in a console INPUT_RECORD
typedef struct _KEY_EVENT_RECORD { // ker
BOOL
bKeyDown;
WORD
wRepeatCount;
WORD
wVirtualKeyCode;
WORD
wVirtualScanCode;
union {
WCHAR
UnicodeChar;
CHAR AsciiChar;
} uChar;
DWORD
dwControlKeyState;
} KEY_EVENT_RECORD;
Members
bKeyDown
Specifies
TRUE if the key is being pressed, FALSE if the key is being released.
wRepeatCount
Specifies a
count indicating that a key is being held down. For example, when a key is held
down, you might get five events with this member equal to 1, one event with
this member equal to 5, or multiple events with this member greater than or
equal to 1.
wVirtualKeyCode
Specifies the
virtual-key code that identifies the given key in a device-independent manner.
wVirtualScanCode
Specifies the
virtual scan code of the given key that represents the device-dependent value
generated by the keyboard hardware.
uChar
Specifies the
translated Unicode or ASCII character, depending on whether the wide-character
(Unicode) or ANSI version of the ReadConsoleInput
dwControlKeyState
Indicates the
state of the control keys. This member can be a combination of the following
values:
Value |
Meaning |
CAPSLOCK_ON |
The CAPS LOCK light
is on. |
ENHANCED_KEY |
The key is
enhanced. |
LEFT_ALT_PRESSED |
The left ALT key is
pressed. |
LEFT_CTRL_PRESSED |
The left CTRL key is
pressed. |
NUMLOCK_ON |
The NUM LOCK light
is on. |
RIGHT_ALT_PRESSED |
The right ALT key is
pressed. |
RIGHT_CTRL_PRESSED |
The right CTRL key is
pressed. |
SCROLLLOCK_ON |
The SCROLL LOCK
light is on. |
SHIFT_PRESSED |
The SHIFT key is
pressed. |
Remarks
Enhanced keys
for the IBM 101- and 102-key keyboards are the INS, DEL, HOME, END, PAGE UP, PAGE DOWN, and direction keys in the clusters to the left of
the keypad; and the divide (/) and ENTER keys in the keypad.
Keyboard
input events are generated when any key, including control keys, is pressed or
released. However, the ALT key when pressed and released without combining with
another character, has special meaning to Windows and is not passed through to
the application. Also, the CTRL+C key combination is not passed through if the input
handle is in processed mode (ENABLE_PROCESSED_INPUT).
See Also