API一日一记——使用全局钩子模仿QQ悬挂窗口
所谓的钩子就是SetWindowsHookEx
工程下载地址
大致思路是搞个钩子将WH_MOUSE截获 也可以截获WH_GetMOUSE 测试效果一样感觉还是WH_GetMOUSE效果好一点
要想搞全局的钩子那就必须放在DLL中
然后我们看看
SetWindowsHookEx这个函数
HHOOK SetWindowsHookEx(int idHook, // 待安装的勾子类型HOOKPROC lpfn, // 回调函数地址 必须在DLL里边HINSTANCE hMod, // 应用程序中包含回调函数lpfn的DLL句柄 DWORD dwThreadId //要安装勾子的线程,为0则是全局勾子,向所有线程注入)
既然是鼠标钩子那我们就写
HHOOK hok; //全局变量
hok=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseProc,GetModuleHandle(_T("HookDll")),NULL);// HOOK安装函数
if(!hok){return FALSE;} //如果注册失败返回FALSEg_dwThread=dwThread;return TRUE; //钩子注册成功返回TRUE
会调函数:
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{LRESULT lpesult=::CallNextHookEx(hok,nCode,wParam,lParam);if (g_dwThread>0)
{POINT pt;static POINT ptold;::GetCursorPos(&pt);if (pt.x!=ptold.x || pt.y!=ptold.y){::PostThreadMessage(g_dwThread,WM_MOUSE_ALL,0,MAKELPARAM(pt.x,pt.y));ptold.x=pt.x;ptold.y=pt.y;}}
return lpesult;}**** Hidden Message *****
学习学习
!!!!!!!!!!!!!!!!!!! 谢谢您了楼主 赞一个:big 顶起:huffy::huffy:
希望学习一下 谢谢分享 :big不错。支持。 新人学习了 使用全局钩子模仿QQ悬挂窗口 [修改] 讲API的,这个不错,还有没有类似的帖?? 学习了,, 顶 楼主,{:1_1:}{:1_1:}
顶起:mad::mad::mad: 支持下。。 赞一个楼主谢谢 好资源,很好,很好 看看效果的 路过看一看 此贴不能倒:huffy::huffy::huffy: 学习学习 啊 嘻嘻{:5_95:}