读书人

如果拦截并修改SendMessage发的消息?

发布时间: 2012-02-22 19:36:55 作者: rapoo

如果拦截并修改SendMessage发的消息?
目前我的理解是:WH_CALLWNDPROC可以拦截SendMessage发出的消息,但是无法修改;
WH_GETMESSAGE可以拦截PostMessage发出的消息,也可以修改之。

我想拦截并修改SendMessage发的消息,该使用哪种类型的钩子?

[解决办法]
没法改,你可以用SetWindowLong修改窗口过程
[解决办法]
我也觉得不可能修改,既然已经发出来了
[解决办法]
调用SetWindowPos把窗体的位置改到屏幕外,就看不到了!
SetWindowPos(msg.hwnd,0,0,30000{Top},0,0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOACTIVATE)

探讨
既然能监控到,难道不能修改吗?

我现在监控到了发向某窗体的WM_SHOWWINDOW消息,然后调用ShowWindow(msg.hwnd,SW_HIDE)来使其隐藏。但这样不够完美,因为消息仍然到达了目标窗体,窗体先显示,然后再被我发的消息隐藏,看起来就是会闪一下。如果能杀掉这条WM_SHOWWINDOW的消息,或者改成WM_NULL就可以了。可这该怎么实现?
求教!

读书人网 >.NET

热点推荐