因此,我试图在用户使用钩子按下键盘上的按钮时显示一个消息框。

该挂钩已正确安装,因为没有错误,但似乎没有调用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中:“通过向安装钩子的线程发送消息来进行调用。因此,安装钩子的线程必须具有消息循环。”

10-02 23:06