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
由以下成员组成的联合。

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 (via WinCon.h, include Windows.h)

另请参阅

PeekConsoleInput

ReadConsoleInput

WriteConsoleInput

INPUT_RECORD