打印按键C ++

时间:2019-02-09 17:40:13

标签: c++ logging key

我想捕获并打印按键。问题是我的程序将“ 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;
}

预先感谢任何提示或示例。

1 个答案:

答案 0 :(得分:0)

如果您查看this reference.,它指出:

  

如果未按任何键,则该函数返回0;当当前按此键时,该值返回<0(小于零)。

因此,您检查是否为负值以查看是否已按下按钮。您可以像编写if (GetAsyncKeyState(i) < 0)一样容易地编写它并使它工作,并使它更清晰。

相关问题