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

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

2015-1-6 16:18
8210
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 )
在线值:
发帖
回帖
粉丝
yuchengton 2015-1-6 19:07
2
0
子类化……
hook windowproc
雪    币: 194
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
谁知道 2015-1-6 21:04
3
0
就是在hook的过程中修改目标window的proc是吗?

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

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

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

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

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