杞人 发表于 2013-8-1 11:00:11

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 *****

此处略缺三万 发表于 2013-8-1 11:25:52

学习学习
!!!!!!!!!!!!!!!!!!!

の祉崭之殇__ 发表于 2013-8-1 12:52:49

谢谢您了楼主

Liet_Torve 发表于 2013-8-1 13:03:48

赞一个:big

杞人 发表于 2013-8-2 08:08:19

顶起:huffy::huffy:

pkwangxinjun 发表于 2013-8-2 08:46:38

希望学习一下 谢谢分享

cmqi159 发表于 2013-8-2 08:53:20

:big不错。支持。

krauss 发表于 2013-8-2 08:59:05

新人学习了

wbdl88 发表于 2013-8-2 09:04:56

使用全局钩子模仿QQ悬挂窗口 [修改]

格式天下 发表于 2013-8-2 09:09:18

讲API的,这个不错,还有没有类似的帖??

小栗子 发表于 2013-8-2 09:09:29

学习了,,

nicho_Y 发表于 2013-8-2 09:13:50

顶 楼主,{:1_1:}{:1_1:}

杞人 发表于 2013-8-2 17:04:15


顶起:mad::mad::mad:

sushan2012 发表于 2013-8-2 17:23:37

支持下。。

僦湜嬡沵 发表于 2013-8-2 17:41:07

赞一个楼主谢谢

John_Lee 发表于 2013-8-2 19:24:28

好资源,很好,很好

fullvip 发表于 2013-8-2 19:34:00

看看效果的

qvbhpfqf 发表于 2013-8-2 19:54:52

路过看一看

杞人 发表于 2013-8-2 20:16:59

此贴不能倒:huffy::huffy::huffy:

牡丹花下死做鬼 发表于 2013-8-2 20:36:51

学习学习 啊 嘻嘻{:5_95:}
页: [1] 2 3
查看完整版本: API一日一记——使用全局钩子模仿QQ悬挂窗口