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
重复计数,指示正在按住键。 例如,当某个键被按住时,你可能会得到 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)

另请参阅

PeekConsoleInput

ReadConsoleInput

WriteConsoleInput

INPUT_RECORD