HCBT_CREATEWND 钩子在windows7 下面失效
如题我想用HCBT_CREATEWND钩子去截获所有线程创建窗口的信息,但是我安装了CBT钩子之后,大概只有HCBT_ACTIVATE 和其他的一些能检测到。HCBT_CREATEWND一直抓不到。
是不是我对HCBT_CREATEWND的理解有问题,如果我的钩子安装好了,那么我随便打开一个Winform或者MFC的程序,我都应该截获到这个消息。
求高人指点
是不是我对HCBT_CREATEWND的理解有问题,如果我的钩子安装好了,那么我随便打开一个Winform或者MFC的程序,我都应该截获到这个消息。
求高人指点
作者: qyljcy 发布时间: 2011-06-14
自己顶一个!!!,我找了好久 都是404你懂的,懂你妹啊!!
作者: qyljcy 发布时间: 2011-06-14
给代码
作者: Lactoferrin 发布时间: 2011-06-14
C/C++ code
LRESULT CALLBACK CBTHOOKProc(int nCode, WPARAM wParam, LPARAM lParam) { if (nCode < 0 || nCode == HC_NOREMOVE) return ::CallNextHookEx(g_cbtHook, nCode, wParam, lParam); CBT_CREATEWND *cbt; CBTACTIVATESTRUCT *cbtact; UINT temp=0; gsmd.seg=2; gsmd.wParam=NULL; gsmd.lParam =NULL; switch (nCode) { case HCBT_ACTIVATE: temp=5; cbtact=(CBTACTIVATESTRUCT*)lParam; if(!IsBadReadPtr(cbtact, 1)) { gsmd.lParam=(LPARAM)cbtact->hWndActive; } break; case HCBT_CREATEWND: temp=3; break; case HCBT_DESTROYWND: temp=4; break; case HCBT_MINMAX: temp=1; break; case HCBT_MOVESIZE: temp=0; break; } gcds.dwData=temp; SendMessage(g_hWnd, WM_COPYDATA, (WPARAM)wParam, (LPARAM)&gcds); return CallNextHookEx(g_cbtHook, nCode, wParam, lParam); }
作者: qyljcy 发布时间: 2011-06-14
这个是CBT的callback函数,是写在DLL里面的,然后我用sendmessage和外面通信,难道是通信出了问题?
作者: qyljcy 发布时间: 2011-06-14
继续顶,求高手
作者: qyljcy 发布时间: 2011-06-14