### 函数功能

该函数检取指定虚拟键的状态。该状态指定此键是UP状态，DOWN状态，还是被触发的（开关每次按下此键时进行切换）。

### 函数原型

SHORT GetKeyState（int nVirtKey）；
函数：
nVrtKey：定义一虚拟键。若要求的虚拟键是字母或数字（A～Z，a～z或0～9），nVirtKey必须被置为相应字符的ASCII码值，对于其他的键，nVirtKey必须是一虚拟键码。若使用非英语键盘布局，则取值在ASCIIa～z和0～9的虚拟键被用于定义绝大多数的字符键。例如，对于德语键盘格式，值为ASCII0（OX4F）的虚拟键指的是"0"键，而VK_OEM_1指"带变音的0键"

### 返回值

返回值给出了给定虚拟键的状态，状态如下：
若高序位为1，则键处于DOWN状态，否则为UP状态。
若低序位为1，则键被触发。例如CAPS LOCK键，被找开时将被触发。若低序位置为0，则键被关闭，且不被触发。触发键在键盘上的指示灯，当键被触发时即亮，键不被触发时即灭。
备注：当给定线程从它的消息队列中读键消息时，该函数返回的键状态发生改变。该状态井不反映与硬件相关的中断级的状态。使用SetKeyboardState可获取这一信息。
欲检取所有虚拟键状态信息，可以使用SetKeyboardState函数。
应用程序可以使用虚拟键码常数VK_SHIFT，VK_CONTROL和VK_MENU作为nVirtKey参数的值。它给出shift，ctrl或alt键的值而不区分左右键，应用程序也可以使用如下的虚拟键码常数作nVirtKey的值来区分前述键的左键、右键的情形。
VK_LSHIFT，VK_RSHIFT；VK_LCONTROL，VK_RCONTROL；VK_LMENU，VK_RMENU
仅当应用程序调用GetKeyboardSlate，SetKeyboardState，GetAsyncKeystate；GetKeyState和MapVirtualKey函数时，才可用这些区分左右键的常数。
Windows CE：GetKeyState函数仅能用于检查如下虚拟键的DOWN状态。
VK_LSHIFT，VKRSHIFT，VK_LCONTROL；VK_RCONTROL；VK_LMENU，VK_RMENU
GetKeyState函数只能用于检查VK_CAPITAL虚拟键的触发状态。

### 速查

Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：1.I及以上版本；头文件：winuser.h；库文件：user32.lib。