我正在尝试用 C++ 编写一个基本的键盘记录器,到目前为止,我设法使用 win api 安装了一个低杠杆键盘挂钩。每次按下一个键时它都会通知我。我想做类似的事情,每次焦点更改到另一个窗口时通知我,所以我知道用户正在输入哪个窗口。我尝试设置一个 HW_CBT 挂钩,但它没有给我任何通知。
做这个的最好方式是什么?
编辑:
我已经编辑了这段代码:
LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) {
cout<<"event";
return CallNextHookEx(0, nCode, wParam, lParam);
}
和SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, NULL, NULL);
我的程序中也有这个:
while(true)
GetMessage(&msg,0,WM_KEYFIRST, WM_KEYLAST);
当我运行程序时,我仍然没有收到任何通知,除了关于击键的通知。
编辑2!!我用GetWindowText()
,GetForegroundWindow()
和一个计时器完成了它。不是我想要的,但这会做。我只会接受第一个答案...