TC官方合作论坛
标题:
【hook】安装全局钩子之后,一个动作会调用两次钩子函数。
[打印本页]
作者:
剑仙十号
时间:
2018-3-22 21:52
标题:
【hook】安装全局钩子之后,一个动作会调用两次钩子函数。
本帖最后由 剑仙十号 于 2018-3-23 09:02 编辑
【hook】安装全局钩子之后,一个动作会调用两次钩子函数。这是为何?
#include <windows.h>
#include <tchar.h>
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 是为什么啊?
最佳答案。
ccr :
因为有按下和抬起 WM_KEYUP WM_KEYDOWN。
if(((lParam>>31)&1) ==0)
{
if(VK_F1 == wParam)
{//按下
SendMessage(m_hWnd,WM_KEYDOWN,wParam,lParam);
MessageBox(NULL,_T("hook"),_T("hook"),MB_OK);
return 1;
}
}
else
{
//弹起
}
2013-02-02
位。左边是最高位,右边最低位.png
(1.08 KB, 下载次数: 7)
下载附件
2018-3-22 23:41 上传
作者:
剑仙十号
时间:
2018-3-22 21:52
本帖最后由 剑仙十号 于 2018-4-21 18:21 编辑
二楼,更新信息专用。
tc简单开发_爱好群:
433286131 (462/500)
tc简单开发_爱好群Ⅱ:
143358382 (192/500)
tc办公文本_爱好群:
612661895(29/500)
本群大神众多,新手众多。群文件内 资源海量。 希望新手 分享更多笔记,减少重复造轮子的时间。 好编程,齐学习,齐进步。
作者:
ZYZYUANG
时间:
2018-9-24 22:29
钩子函数
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1