delphi中如何屏蔽别的程序的错误弹出信息?

helson2008 2010-04-21 04:22:07
我现在要频繁的向一个程序中注入代码,由于频繁操作,这个程序会不定时的弹出错误信息(错误信息都是固定相同的,窗口名固定,类也固定),我现在想用全局钩子的方法来屏蔽这个弹出的错误信息,不让他出现,直接隐藏或者直接destroy,我看了网上介绍了的WH_CBT的钩子,自己也测试了一下,没做出来,我想请教高手,对于这种情况,如果我想做一个全局的钩子,实现以下功能,请帮忙给出代码,多谢了!

我要实现:
用全局钩子监控整个系统,当出现类名为 Classname 的窗口或者 标题为 titlename 的弹出窗口时 ,就将它屏蔽掉,要屏蔽的窗口不要显示(也不闪烁,直接隐藏或者destroy掉)

请给出测试通过的delphi代码,最好是源程序,谢谢大家了!

只要程序调试通过,分数100赠送!
...全文
686 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2010-08-02
  • 打赏
  • 举报
回复
應該要從勾外部程序的create或show的事件中去屏蔽...
sichouzhilu 2010-07-26
  • 打赏
  • 举报
回复
还是从根本上解决问题比较好。
iqyely 2010-05-10
  • 打赏
  • 举报
回复
关注下。
apoer 2010-05-10
  • 打赏
  • 举报
回复
用delphi自带的异常处理控件就行了
ApplicationEvents 控件..

在onEvents1ActionExecute 事件加入 Exit; 这一句就可以,

但不建议,最好找到问题的根源...
2540546520 2010-05-08
  • 打赏
  • 举报
回复
http://chensongbin0.download.csdn.net/
这里有源码!!!!
无条件为你 2010-04-28
  • 打赏
  • 举报
回复
只需要钩住外部程序的show事件屏蔽即可。100分有点少。如果你加分我可以考虑给你写出完整的代码。否则只能帮你顶下贴子。
zxcwanglei 2010-04-28
  • 打赏
  • 举报
回复
新人学习了..帮顶.
delphizdd 2010-04-28
  • 打赏
  • 举报
回复
我也来学习一下..
kill222 2010-04-27
  • 打赏
  • 举报
回复
inline hook messagebox
lhy 2010-04-26
  • 打赏
  • 举报
回复
处理异常
yyfhz 2010-04-26
  • 打赏
  • 举报
回复
放一个Timer,不停的查询某个窗体是否存在,若是向那边发一个按钮点击消息或窗体关闭消息看看。
xjq2003 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 helson2008 的回复:]
屏蔽这个消息后,程序可以正常运行,我现在用的方法如下:
procedure checkerror; {查找错误窗口进行关闭或者隐藏}
var
h:hwnd; //错误窗口句柄
p,name,ps:array[0..254] of Char;//用来存放制定进程的classname的数组
begin
{***方法是便利所有窗口,查找相同标题窗口,找到后再判断类是否相同,相同隐……
[/Quote]学习一下
helson2008 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 you1643561153 的回复:]
写程序的只会写程序,不懂系统,不懂网络。。。
这个是系统程序报错,大部分是因为内存问题导致。。。
系统重装后如果还有报错就绝对是内存硬件有问题,只能更换内存。。。
内存不稳定或者内存质量问题导致。。。
[/Quote]不是硬件的问题,是频发操作内存的原因导致的,如果采用互斥线程的话,那么速度会大大降低的,所以我想采用钩子的方式解决
Reverse.King 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 you1643561153 的回复:]
写程序的只会写程序,不懂系统,不懂网络。。。
这个是系统程序报错,大部分是因为内存问题导致。。。
系统重装后如果还有报错就绝对是内存硬件有问题,只能更换内存。。。
内存不稳定或者内存质量问题导致。。。
[/Quote]
动不动就是硬件故障,怀疑你是不是卖硬件的,不懂就不要瞎说。
Reverse.King 2010-04-23
  • 打赏
  • 举报
回复
我也玩一次刷分哈哈
Reverse.King 2010-04-23
  • 打赏
  • 举报
回复
300分
ok1411 2010-04-23
  • 打赏
  • 举报
回复
看看。
you1643561153 2010-04-23
  • 打赏
  • 举报
回复
写程序的只会写程序,不懂系统,不懂网络。。。
这个是系统程序报错,大部分是因为内存问题导致。。。
系统重装后如果还有报错就绝对是内存硬件有问题,只能更换内存。。。
内存不稳定或者内存质量问题导致。。。
helson2008 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 gyk120 的回复:]
好吧,如果你坚持要用这种办法,用SEH吧
[/Quote]
SEH是什么?我没听过,麻烦说的清楚一点
huboy 2010-04-22
  • 打赏
  • 举报
回复
或者 VK_ENTER
加载更多回复(18)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧