我想捕获并打印按键。问题是我的程序将“ a”显示为“ A”,将“ 1”显示为“ a”。而且我不知道如何解决。感谢您的帮助。不能使用scanf或getc之类的东西,因为它应该是我学校项目的键盘记录程序(可免费下载)。
我的源代码:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>
using namespace std;
int main(){
char c;
while(true)
{
for (int i = 8; i <= 255; i++)
{
if (GetAsyncKeyState(i) == -32767) // I DONT UNDERSTAND THIS LINE
{
c = char(i);
printf("%c", c);
}
}
}
return 0;
}
预先感谢任何提示或示例。
答案 0 :(得分:0)
如果您查看this reference.,它指出:
如果未按任何键,则该函数返回0;当当前按此键时,该值返回<0(小于零)。
因此,您检查是否为负值以查看是否已按下按钮。您可以像编写if (GetAsyncKeyState(i) < 0)
一样容易地编写它并使它工作,并使它更清晰。