C++钩子键盘键按下并松开键

C++ hook keyboard key pressed and key released

本文关键字:键盘 C++      更新时间:2023-10-16

我正在尝试键盘挂钩。意思是我正在尝试捕获按键和按键释放。

我尝试使用键数组进行循环,其中键是当前正在检查的键值:

GetAsyncKeyState(key) & 0x8000

以下示例,多次捕获按键。我正在寻找的结果是仅在第一次按下时捕获键,如果它释放,可以再次键入。

所以诀窍基本上是使用函数GetAsyncKeyState,并计算每个键被按下了多少次。如果计数等于 1,则按回车键(一次)这是我的班级:

class Key {
private:
    unsigned char key;
    int count;
public:
    Key(unsigned char key) {
        this->key = key;
    }
    void captureKey() {
        if (GetAsyncKeyState(key) & 0x8000) {
            count++;
        }
        else {
            count = 0;
        }
    }
    bool isPressed() {
        return count == 1;
    }
    unsigned char getKey() {
        return this->key;
    }

};