描述控制台 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
重复计数,指示正在按住键。 例如,当某个键被按住时,你可能会得到 5 个事件,此成员等于 1、一个此成员等于 5 的事件,或者此成员大于或等于 1 的多个事件。
wVirtualKeyCode
一个 虚拟密钥代码 ,用于以独立于设备的方式标识给定密钥。
wVirtualScanCode
表示键盘硬件生成的设备依赖值的给定键的虚拟扫描代码。
uChar
以下成员的联合。
UnicodeChar
已翻译的 Unicode 字符。
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 和方向键:和键盘上的除号(/)和 ENTER 键。
当按下或释放任何键(包括控制键)时,将生成键盘输入事件。 但是,在按下并释放时,ALT 键与另一个字符没有组合,对系统具有特殊意义,并且不会传递到应用程序。 此外,如果输入句柄处于处理模式(ENABLE_PROCESSED_INPUT),则不会传递 CTRL+C 键组合。
例子
有关示例,请参阅 读取输入缓冲区事件。
要求
| 支持的最低客户端 | Windows 2000 Professional [仅限桌面应用] |
| 支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
| 标题 | WinConTypes.h (通过 WinCon.h,包括 Windows.h) |