windows 安装全局钩子之后 一个动作会调用两次钩子函数
解决时间 2021-03-02 10:56
- 提问者网友:鼻尖触碰
- 2021-03-02 01:11
#include #include HHOOK g_hKeyboard = NULL;#pragma data_seg("MySec")HWND m_hWnd = NULL;#pragma data_seg()LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){if(VK_F1 == wParam){SendMessage(m_hWnd,WM_KEYDOWN,wParam,lParam);MessageBox(NULL,_T("hook"),_T("hook"),MB_OK);return 1;}else{return CallNextHookEx(g_hKeyboard,nCode,wParam,lParam);}}void SetHook(HWND hWnd){m_hWnd = hWnd;g_hKeyboard = SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle(_T("Hook")),0);}
无论我在什么窗口中按下 f1 都会出现两次信息窗 还发送两次 sendmessage 是为什么啊?
还有 这个钩子函数写在dll文件里面的 当我程序关闭时候有必要删除这个钩子么,如果要删除是不是还要吧这个钩子句柄传回给我的程序 在程序关闭小心中删除这个钩子?
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-03-02 02:34
因为有按下和抬起 WM_KEYUP WM_KEYDOWN
全部回答
setwindowshookex
我要举报
大家都在看
推荐资讯