getKeyState 函数 (winuser.h)
检索指定虚拟键的状态。 状态指定键是向上、向下还是切换, (打开、关闭—每次按下键时交替) 。
语法
SHORT GetKeyState(
[in] int nVirtKey
);
参数
[in] nVirtKey
类型: int
虚拟密钥。 如果所需的虚拟键是字母或数字 (A 到 Z、a 到 z 或 0 到 9) ,则必须将 nVirtKey 设置为该字符的 ASCII 值。 对于其他密钥,它必须是虚拟密钥代码。
如果使用非英语键盘布局,则使用值在 ASCII A 到 Z 和 0 到 9 范围内的虚拟键来指定大多数字符键。 例如,对于德语键盘布局,ASCII O (0x4F) 值虚拟键是指“o”键,而VK_OEM_1表示“o with umlaut”键。
返回值
类型: SHORT
返回值指定指定虚拟密钥的状态,如下所示:
- 如果高阶位为 1,则键关闭;否则,它已启动。
- 如果低序位为 1,则切换键。 如果某个键(如 CAPS LOCK 键)处于打开状态,则会将其切换。 如果低序位为 0,则键处于关闭状态并取消键。 切换键的指示灯 (,如果键盘上的任何) 在切换键时将亮起,在取消切换键时处于关闭状态。
注解
当线程从其消息队列读取密钥消息时,此函数返回的密钥状态会发生变化。 状态不反映与硬件关联的中断级别状态。 使用 GetAsyncKeyState 函数检索该信息。
应用程序调用 GetKeyState 以响应键盘输入消息。 此函数检索生成输入消息时键的状态。
若要检索所有虚拟密钥的状态信息,请使用 GetKeyboardState 函数。
应用程序可以使用 虚拟密钥代码 常量 VK_SHIFT、 VK_CONTROL和 VK_MENU 作为 nVirtKey 参数的值。 这会提供 SHIFT、CTRL 或 ALT 键的状态,而不区分左键和右键。 应用程序还可以使用以下虚拟键代码常量作为 nVirtKey 的值,以区分这些键的左实例和右实例:
VK_LSHIFTVK_RSHIFTVK_LCONTROLVK_RCONTROLVK_LMENUVK_RMENU 这些左右区分常量仅通过 GetKeyboardState、 SetKeyboardState、 GetAsyncKeyState、 GetKeyState 和 MapVirtualKey 函数对应用程序可用。
示例
有关示例,请参阅 显示键盘输入。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |