-
-
[求助]为什么控制台程序里WH_KEYBOARD 没反应 WH_KEYBOARD_LL 确有效果
-
发表于: 2018-4-16 15:36 2208
-
HHOOK MyHook; //接收由SetWindowsHookEx返回的旧的钩子 //回调函数声明,为了尽早见到亲切的主函数,将回调函数的定义写在最后面 int CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam); int main() { //安装钩子 MyHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)&KeyboardProc, //回调函数地址 0, GetCurrentThreadId()); printf_s("%d %x \n", MyHook, GetLastError()); MSG msg; while (GetMessage(&msg, NULL, 0, 0)) //消息循环 { TranslateMessage(&msg); DispatchMessage(&msg); }; UnhookWindowsHookEx(MyHook); return 0; } //回调函数,用于处理截获的按键消息 int CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam) { MessageBox(0, _T("adsad"), 0, 0); printf("%d %x %x\n", code, wParam, lParam); tagKBDLLHOOKSTRUCT* a = (tagKBDLLHOOKSTRUCT*)lParam; //printf("%d %x %x\n", code, wParam, a->vkCode); //输出按键信息,注意这里按下和弹起都会输出 return CallNextHookEx(MyHook, code, wParam, lParam); //将消息还给钩子链,不要影响别人 }
如上代码 本意是 hook 自己, 实际 运行后在 控制台里 敲键盘 KeyboardProc 不会触发
改成
SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)&KeyboardProc, //回调函数地址 0, 0);
全局 hook 按键 就会触发
KeyboardProc 回调了? //这里会触发我觉得很正常 关键是 上面 为什么不会触发呢
谢谢大佬们
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
看原图
赞赏
雪币:
留言: