首页
社区
课程
招聘
[求助]如何拦截阻止一个消息 ? SendMessage
发表于: 2015-1-6 16:18 8633

[求助]如何拦截阻止一个消息 ? SendMessage

2015-1-6 16:18
8633
SendMessage把message直接发往window , 调用window proc .

我知道可以用WH_CALLWNDPROC  hook这个message , 但是仅仅能查看message的内容, 却无法修改它.

所以, WH_CALLWNDPROC 不能拦截SendMessage消息 .

能有什么办法呢???

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
子类化……
hook windowproc
2015-1-6 19:07
0
雪    币: 194
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
就是在hook的过程中修改目标window的proc是吗?

目前想到的也只有这个方法了.

这个问题是个特例情况, 几乎所有的mouse event都通过queue来传递,
但是WM_MOUSEWHEEL例外, 是由system(或者是mouse driver ?) SendMessage到window .

WM_MOUSE或者WH_MOUSE_LL 统统没用, 只有WH_CALLWNDPROC 能handle .
2015-1-6 21:04
0
雪    币: 7381
活跃值: (4091)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
setwindowlong子类化吧,或者HOOK发消息程序的SENDMESSAGE。
2015-1-6 22:19
0
雪    币: 194
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这句话是什么意思? 没理解
2015-1-7 08:08
0
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
WM_MOUSEWHEEL不也是投递到消息列队里的么……
2015-1-7 09:04
0
雪    币: 194
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
嗯, 我今天推翻了昨天的结论.

这个WM_MOUSEWHEEL的目的地似乎是由驱动程序决定的.
来自鼠标的通过message queue
而我一台dell笔记本上触摸板是直接SendMessage到focused window

正在思考这个问题,
2015-1-7 11:03
0
雪    币: 123
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
最直接的方法就是hook SendMessage
2015-1-9 21:41
0
雪    币: 75
活跃值: (733)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
kiuserdispatcherxxx
2015-1-9 23:49
0
游客
登录 | 注册 方可回帖
返回
//