GetKeyboardState功能将256个虚拟键的状态复制到指定的缓冲区。
BOOL GetKeyboardState(
PBYTE 【lpKeyState】 | //接收状态数据的数组地址 |
); |
参数
【lpKeyState】
指向将接收每个虚拟键的状态数据的256字节数组。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
应用程序可以调用此函数来检索所有虚拟键的当前状态。状态随着线程从其消息队列中移除键盘消息而发生变化。当键盘消息发布到消息队列时,状态不会改变。
当函数返回时,【lpKeyState】参数指向的数组的每个成员都包含虚拟键的状态数据。如果高位为1,则键为关;否则,它是up。如果低位为1,则键被切换。如果打开了钥匙,例如CAPS LOCK键,则会被切换。如果低位位为0,则该键处于关闭状态。当键切换时,键盘上的切换键的指示灯(如果有的话)将亮起,而当键未被切换时,该键指示灯将熄灭。
要检索单个键的状态信息,请使用GetKeyState功能。
应用程序可以使用虚拟密钥代码常量VK_SHIFT,VK_CONTROL和VK_MENU作为【lpKeyState】指向的数组中的索引。这给出了SHIFT,CTRL或ALT键的状态,而不区分左和右。应用程序还可以使用以下虚拟键代码常量作为索引来区分这些键的左右实例:
VK_LSHIFT | VK_RSHIFT |
VK_LCONTROL | VK_RCONTROL |
VK_LMENU | VK_RMENU |
只有通过GetKeyboardState,SetKeyboardState,GetAsyncKeyState,GetKeyState和MapVirtualKey功能,这些左和右区别常数才可用于应用程序。
也可以看看
GetKeyState, GetAsyncKeyState, MapVirtualKey, SetKeyboardState