首页
社区
课程
招聘
[求助]关于WH_CBT的HOOK
发表于: 2013-10-15 22:12 5934

[求助]关于WH_CBT的HOOK

2013-10-15 22:12
5934
用SDK写了一个简单的窗口应用程序,在CreateWindow()调用之前安插了一个HOOK:SetWindowsHookEx(WH_CBT,CBTProc,NULL,GetCurrentThreadId());程序运行后发现在回调函数
LRESULT CALLBACK CBTProc(int nCode,WPARAM wParam,LPARAM lParam)里面的HCBT_CREATEWND被触发了两次;程序通篇只有一个CreateWindow(),为什么会两次触发HCBT_CREATEWND消息呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 25
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己顶一个
2013-10-17 21:59
0
雪    币: 49
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在回调函数中打印出进程路径和窗口名称看下或者下断点自己调试下
2013-10-18 07:41
0
雪    币: 25
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
今天又试了一下,只是创建一个简单的Win32窗口,却拦截到5个窗口句柄
1> hWnd = 0x000313C2, ThreadId = 0x514
2> hWnd = 0x000313C4, ThreadId = 0x514
3> hWnd = 0x001513BC, ThreadId = 0x514
4> hWnd = 0x000D0F26, ThreadId = 0x514
5> hWnd = 0x00041252, ThreadId = 0x514

第一个是我创建的窗口句柄
第二个用SPY查看了下窗口标题是:Default IME
第三个用SPY查看了下窗口标题是:OleMainThreadWndName
第四个用SPY查看了下窗口标题是:CicMarshalWnd
第五个用SPY查看了下窗口标题是:MSCTFIME UI

而且第二个是第一个的子窗口,第五个是第二个的子窗口
后面四个窗口是系统自动创建的?
2013-10-31 15:32
0
雪    币: 49
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
句柄是指用一个唯一的整数值,来标识应用程序中的不同对象同类对象中的不同实例~
你确定认为所有的都是窗口句柄,在一个窗口上,控件也是有句柄的~
你懂窗口上有没有其他的东西~
2013-11-1 07:41
0
雪    币: 25
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
控件的话应该会带有WS_CHILDWINDOW style吧,用VS的Win32 wizard生成的简单的win32程序,创建几个窗口、要不要创建控件还是比较一目了然的
2013-11-1 08:05
0
雪    币: 25
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
用SPY查过,附带生成的那三个窗口一个是"IME"类型、一个“MSCTFIME UI”类型,这两个好像跟输入法有关,还一个"CiCmarshalWnd"类型不知道是干嘛的
2013-11-1 08:07
0
雪    币: 49
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这种东西具体的我也不太懂,不过IME确实跟输入法有关~
不过CiCmarshalWnd估计跟系统有关,详情的话google吧~
2013-11-1 11:47
0
游客
登录 | 注册 方可回帖
返回
//