KEY_EVENT_RECORD结构用于在控制台INPUT_RECORD结构中报告键盘输入事件。
typedef struct _KEY_EVENT_RECORD { //因为
BOOL bKeyDown;
WORD wRepeatCount;
WORD wVirtualKeyCode;
WORD wVirtualScanCode;
工会{
WCHAR UnicodeChar;
CHAR AsciiChar;
} uChar;
DWORD dwControlKeyState;
} KEY_EVENT_RECORD;
会员
bKeyDown
如果键被按下,则指定为TRUE,如果键被释放,则为FALSE。
wRepeatCount
指定一个表示正在按住键的计数。例如,当一个键被按下时,你可能会得到五个事件,其中该成员等于1,一个事件与该成员等于5,或多个事件与此成员大于或等于1。
wVirtualKeyCode
指定以设备无关的方式标识给定键的虚拟键代码。
wVirtualScanCode
指定给定键的虚拟扫描代码,表示由键盘硬件生成的与设备相关的值。
飞行
指定翻译的Unicode或ASCII字符,具体取决于是否使用了宽字符(Unicode)或ANSI版本的ReadConsoleInput函数。
dwControlKeyState
表示控制键的状态。该成员可以是以下值的组合:
值 | 含义 |
CAPSLOCK_ON | CAPS LOCK指示灯亮起。 |
ENHANCED_KEY | 关键是增强了。 |
LEFT_ALT_PRESSED | 按左ALT键。 |
LEFT_CTRL_PRESSED | 按住左侧的CTRL键。 |
NUMLOCK_ON | NUM LOCK指示灯亮起。 |
RIGHT_ALT_PRESSED | 按ALT键。 |
RIGHT_CTRL_PRESSED | 右键CTRL键被按下。 |
SCROLLLOCK_ON | SCROLL LOCK指示灯亮起。 |
SHIFT_PRESSED | 按SHIFT键。 |
备注
IBM 101-和102键键盘的增强键是键盘左侧的集群中的INS,DEL,HOME,END,PAGE UP,PAGE DOWN和方向键;和键盘上的除数(/)和ENTER键。
当按下或释放任何键(包括控制键)时,将生成键盘输入事件。但是,当按下并释放ALT键而不与另一个字符组合时,ALT键对Windows具有特殊的意义,不会传递给应用程序。此外,如果输入句柄处于处理模式(ENABLE_PROCESSED_INPUT),则CTRL + C组合键不会传递。
也可以看看
PeekConsoleInput, ReadConsoleInput, WriteConsoleInput, INPUT_RECORD