GetKeyState函数检索指定虚拟键的状态。该状态指定键是上,下还是切换(每次按下键时__交替关闭)。
SHORT GetKeyState(
INT 【nVirtKey】 | //虚拟键代码 |
); |
参数
【nVirtKey】
指定虚拟键。如果所需的虚拟键是字母或数字(A到Z,a到z或0到9),则必须将【nVirtKey】设置为该字符的ASCII值。对于其他键,它必须是虚拟键代码。
如果使用非英文键盘布局,则使用ASCII A到Z和0到9范围内的值的虚拟键来指定大部分的字符键。例如,对于德语键盘布局,值为ASCII O(0x4F)的虚拟键指的是“o”键,而VK_OEM_1指的是“o与变音”键。
返回值
如果函数成功,则返回值指定给定虚拟键的状态。如果高位为1,则键为关;否则,它是up。如果低位为1,则键被切换。如果打开了钥匙,例如CAPS LOCK键,则会被切换。如果低位位为0,则该键处于关闭状态。当键切换时,键盘上的切换键的指示灯(如果有的话)将亮起,而当键未被切换时,该键指示灯将熄灭。
备注
从函数返回的关键状态随着给定的线程从其消息队列中读取密钥消息而改变。该状态不反映与硬件相关联的中断级别状态。使用GetAsyncKeyState函数来检索该信息。
应用程序响应键盘输入消息调用GetKeyState.该函数在生成输入消息时检索密钥的状态。
要检索所有虚拟键的状态信息,请使用GetKeyboardState功能。
应用程序可以使用虚拟密钥代码常量VK_SHIFT,VK_CONTROL和VK_MENU作为【nVirtKey】参数的值。这给出了SHIFT,CTRL或ALT键的状态,而不区分左和右。应用程序还可以使用以下虚拟代码常量作为【nVirtKey】的值来区分这些键的左右实例:
VK_LSHIFT | VK_RSHIFT |
VK_LCONTROL | VK_RCONTROL |
VK_LMENU | VK_RMENU |
只有通过GetKeyboardState,SetKeyboardState,GetAsyncKeyState,GetKeyState和MapVirtualKey功能,这些左和右区别常数才能应用于应用程序。
也可以看看
GetAsyncKeyState, GetKeyboardState, MapVirtualKey, SetKeyboardState