我正在尝试使用GetAsyncKeyState(int vKey)函数,但我有一点问题: 它适用于字母,数字和键(如Enter或Space),但当我尝试使用逗号“,”时函数不起作用。
#include <myHead.h>
int main()
{
char i = 44;
while(1)
{
Sleep(5);
if(GetAsyncKeyState(i)<0)
{
cout << "Got it!";
}
}
}
我应该补充一点,我使用的是Windows 7 Lap Top
答案 0 :(得分:2)
使用VkKeyScanEx函数了解给定字符的VK代码。
如果您只是对用户按下键盘上的相应按键感兴趣,那应该可以解决问题。但是,如果你想区分移位/非移位,或ALT的使用(作为法语键盘上的欧元符号,Alt + E),事情会更复杂。
简单示例:
SHORT sRet = VkKeyScanEx( ',', 0 );
BYTE vk = LOBYTE( sRet );
在我的笔记本电脑上,当我按下''键盘键(法语键盘)时,vk为188(0xBC),GetAsyncKeyState(188)返回&lt; 0
(是的,VK_OEM_COMMA是0xBC)