Global KeyBoard Hook和设备信息

时间:2016-10-19 02:32:54

标签: keyboard window hook

我在C ++的键盘钩子中有这个工作示例

#include <iostream>
#include <fstream>
#include <Windows.h>
#pragma comment(lib, "user32.lib")

HHOOK keyboardHook{ NULL };


LRESULT CALLBACK MyLowLevelKeyBoardProc(const int nCode, const WPARAM wParam, const LPARAM lParam)
{

    KBDLLHOOKSTRUCT *kb = (KBDLLHOOKSTRUCT *)lParam;

    switch (wParam)
    {

    case WM_KEYUP:
        std::cout << "KeyUp event : " << kb->vkCode   << std::endl;
        break;
    }

    return CallNextHookEx(keyboardHook, nCode, wParam, lParam);
}


int main(int argc, char* argv[])
{
    keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, MyLowLevelKeyBoardProc, NULL, 0);
    if (keyboardHook == NULL) {
        std::cout << "Keyboard hook failed!" << std::endl;
    }


    while (GetMessage(NULL, NULL, 0, 0));
    return 0;
}

我希望这能从一个像键盘一样的usb rfid读卡器读取数据。

主要问题是如何区分来自阅读器的键和来自真实键盘的键。

我测试了KBDLLHOOKSTRUCT的 dwExtraInfo 参数但在两种情况下都给了我0(键盘/读卡器)

欢迎任何帮助/想法/建议

谢谢。

0 个答案:

没有答案