我正在尝试使用 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 笔记本电脑
最佳答案
使用 VkKeyScanEx函数来了解给定字符的 VK 代码。
如果您只是对用户按下键盘上的相应键感兴趣,那应该可以解决问题。但是,如果您想区分移位/非移位和/或 ALT 的使用(如法语键盘上的欧元符号,Alt+E),事情就更复杂了。
简单的例子:
SHORT sRet = VkKeyScanEx( ',', 0 );
BYTE vk = LOBYTE( sRet );
在我的笔记本电脑上,vk 是 188 (0xBC) 并且 GetAsyncKeyState(188) 在我按下“,”键盘键(法语键盘)时返回 <0
(是的,VK_OEM_COMMA 是 0xBC)
关于c++ - GetAsyncKeyState(int vKey) 中的点逗号减号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573137/