我在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(键盘/读卡器)
欢迎任何帮助/想法/建议
谢谢。