社区
Windows SDK/API
帖子详情
如果拦截并修改SendMessage发的消息?
nautilous
2012-01-09 05:21:25
目前我的理解是:WH_CALLWNDPROC可以拦截SendMessage发出的消息,但是无法修改;
WH_GETMESSAGE可以拦截PostMessage发出的消息,也可以修改之。
我想拦截并修改SendMessage发的消息,该使用哪种类型的钩子?
...全文
633
15
打赏
收藏
如果拦截并修改SendMessage发的消息?
目前我的理解是:WH_CALLWNDPROC可以拦截SendMessage发出的消息,但是无法修改; WH_GETMESSAGE可以拦截PostMessage发出的消息,也可以修改之。 我想拦截并修改SendMessage发的消息,该使用哪种类型的钩子?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Lactoferrin
2012-01-10
打赏
举报
回复
用SetWindowPos也可以隐藏窗口
nautilous
2012-01-10
打赏
举报
回复
那请问如何修改窗口过程呢?SetWindowLong设置哪个样式可以让窗体隐藏?
Lactoferrin
2012-01-10
打赏
举报
回复
都说了不能改,要改只能修改窗口过程
nautilous
2012-01-10
打赏
举报
回复
既然能监控到,难道不能修改吗?
我现在监控到了发向某窗体的WM_SHOWWINDOW消息,然后调用ShowWindow(msg.hwnd,SW_HIDE)来使其隐藏。但这样不够完美,因为消息仍然到达了目标窗体,窗体先显示,然后再被我发的消息隐藏,看起来就是会闪一下。如果能杀掉这条WM_SHOWWINDOW的消息,或者改成WM_NULL就可以了。可这该怎么实现?
求教!
nautilous
2012-01-10
打赏
举报
回复
还是没用。另外我的主窗体本来就是隐藏的。。。也不希望显示出来。
我在想SETWINDOWLONG可不可以设置窗体为某种不获得焦点的样式?
s11ss
2012-01-10
打赏
举报
回复
再加个ShowWindow(GetParent(msg.hwnd), SW_SHOW)试试!
nautilous
2012-01-10
打赏
举报
回复
已经这么做了,没有用。。。
s11ss
2012-01-10
打赏
举报
回复
调完SetWindowPos,再调SHowWindow传SW_HIDE,试试![Quote=引用 11 楼 nautilous 的回复:]
膜拜s11ss 这招都能想到,牛叉啊!
最后一个力求完美之处,能不能让这个屏幕外的窗体不获得焦点?
现在不会出现闪一下的情况,但是桌面上已有的窗体会自动失去焦点。
[/Quote]
nautilous
2012-01-10
打赏
举报
回复
膜拜s11ss 这招都能想到,牛叉啊!
最后一个力求完美之处,能不能让这个屏幕外的窗体不获得焦点?
现在不会出现闪一下的情况,但是桌面上已有的窗体会自动失去焦点。
s11ss
2012-01-10
打赏
举报
回复
不要用SetWindowPos传SWP_HIDEWINDOW的方法,因为这样就与SHowwindow传SW_HIDE一样了,都会闪一下。
s11ss
2012-01-10
打赏
举报
回复
调用SetWindowPos把窗体的位置改到屏幕外,就看不到了!
SetWindowPos(msg.hwnd,0,0,30000{Top},0,0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOACTIVATE)
[Quote=引用 5 楼 nautilous 的回复:]
既然能监控到,难道不能修改吗?
我现在监控到了发向某窗体的WM_SHOWWINDOW消息,然后调用ShowWindow(msg.hwnd,SW_HIDE)来使其隐藏。但这样不够完美,因为消息仍然到达了目标窗体,窗体先显示,然后再被我发的消息隐藏,看起来就是会闪一下。如果能杀掉这条WM_SHOWWINDOW的消息,或者改成WM_NULL就可以了。可这该怎么实现?
求教!
[/Quote]
都先生
2012-01-09
打赏
举报
回复
我也觉得不可能修改,既然已经发出来了
Lactoferrin
2012-01-09
打赏
举报
回复
没法改,你可以用SetWindowLong修改窗口过程
nautilous
2012-01-09
打赏
举报
回复
转发是什么概念?我把消息号修改为WM_NULL,不起作用的
我看见佛
2012-01-09
打赏
举报
回复
拦截后再转发?
拦截
EDIT控件中的
消息
问题(上次提问过,我自己找了些资料,虽然
拦截
到
消息
,可得到的是空白字符)...
解决在Delphi中
拦截
EDIT控件
消息
的问题,通过
修改
Hook.dll中的钩子函数,直接使用
SendMessage
将
消息
发
送到自定义程序,成功获取并显示控件中的字符。
如何用PacketEvents快速实现Minecraft插件数据包
拦截
与
修改
本文介绍如何使用PacketEvents协议库在Minecraft Java版插件开
发
中高效
拦截
、识别、
修改
和取消网络数据包。涵盖环境搭建、PacketListener监听器创建、PacketType类型过滤、Wrapper数据包
修改
、cancel()取消机制及监听器注册流程,并涉及协议版本适配、NBT处理与自定义数据包等进阶技术,适用于Spigot/Paper、Velocity等服务端平台。
2.ring3-WH_CALLWNDPROC
拦截
不了键鼠
消息
本文详细介绍了WH_CALLWNDPROC钩子的功能及其工作原理。WH_CALLWNDPROC用于监视通过
SendMessage
传递的
消息
,无论这些
消息
是系统内部调用还是由用户进程调用。文章解释了在WndProc处理
消息
之前,系统如何先调用CallWndProc钩子函数。
Delphi 7中实现自定义
消息
Hook的完整教程与实战
本文详细介绍在Delphi 7中通过RegisterWindowMessage注册自定义
消息
,并使用WH_GETMESSAGE Hook
拦截
和处理
消息
的完整流程。涵盖
消息
机制基础、Hook安装与卸载、跨进程通信及资源管理,结合hook_demo项目实现
消息
监听、回调处理与安全释放,帮助开
发
者掌握Windows底层
消息
控制技术。
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章