因此,当用户使用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);
答案 0 :(得分:1)
您需要运行消息循环来处理呼叫。从KeyboardProc callback function描述中的重新映射:“通过向安装了挂钩的线程发送消息来进行调用。因此,安装挂钩的线程必须有消息循环。”