KeyboardProc回调函数没有被调用?

时间:2016-09-25 03:34:13

标签: c++ windows function callback hook

因此,当用户使用Hooks按下键盘上的按钮时,我会尝试显示一个消息框。

钩子正在安装正确,因为没有错误,但似乎没有调用KeyboardProc Callback函数,因为调用它时应该显示的消息框永远不会出现。

btw没有出现错误,我正在桌面应用程序中编程。

以下是有关钩子和回调函数的代码:

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);

1 个答案:

答案 0 :(得分:1)

您需要运行消息循环来处理呼叫。从KeyboardProc callback function描述中的重新映射:“通过向安装了挂钩的线程发送消息来进行调用。因此,安装挂钩的线程必须有消息循环。”