我尝试编写一个C ++应用程序。 但是,如果我在qwerty键盘上按,,'GetAsyncKeyState(188)== -32767'什么也不做。 由于某种原因,GetAsyncKeyState适用于字母表中的键(如a,b,c等) 但不适用于','或'。'等符号。
答案 0 :(得分:2)
根据文档,GetAsyncKeyState()
的返回值可以设置多个位,具体取决于先前是否按下了键,如果其他程序同时调用该函数,也可能会有所不同。
如果密钥关闭,返回代码(签名短)将为负数,因此如果您只想测试密钥是否已关闭,最简单的方法是:
if (GetAsyncKeyState(VK_OEM_COMMA) < 0) { }
编辑:这是一些适合我的示例代码:
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
for (;;)
{
printf("comma is %s\n", GetAsyncKeyState(VK_OEM_COMMA) < 0 ? "down" : "not down");
}
return 0;
}