因此,我试图在用户使用钩子按下键盘上的按钮时显示一个消息框。
该挂钩已正确安装,因为没有错误,但似乎没有调用KeyboardProc回调函数,因为应该在调用该消息时显示的消息框从不显示。
顺便说一句没有错误出现,我正在桌面应用程序中对此进行编程。
这是有关挂钩和回调函数的代码:
LRESULT CALLBACK KeyboardProc(
int nCode, WPARAM keyState, LPARAM keyInfo) {
LRESULT reValue = 0;
MessageBox(hWnd, L"Testing", L"Test", MB_OK);//This is the msg box that isnt showing up
if (nCode < 0) {
reValue = CallNextHookEx(keyboardHook, nCode, keyState, keyInfo);
}
return reValue;
};
keyboardHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, hInstance, 0);
最佳答案
您需要运行消息循环来处理呼叫。在KeyboardProc callback function描述中的remakrs中:“通过向安装钩子的线程发送消息来进行调用。因此,安装钩子的线程必须具有消息循环。”