又是超难的问题,参与都有分!不是忽悠人的!(100分)

  • 主题发起人 主题发起人 cqwty
  • 开始时间 开始时间
用软件监视(既软件狗)发现被监视程序 就发送关闭(如果无响应就强制关闭杀进程) 然后 一天自起一次服务器(或者软件) 呵呵 一定OK!~
 
to LeonSu:
问题是当程序运行出错的时候,不一定是程序退出了,而是卡在错误消息这个位置了.你怎么能够判断退出了啊?嘿嘿.要是只是运行就会退出,那就好做了,直接监视进程得了,退了就启动.
 
HOOK Message 拦截那个ERROR Message,然后向那个窗体发送关闭消息
 
写个程序,电脑死机了让他自己重起[:D]
 
寫個線程監shi
 
自动监视
 
to 楼主:
其实有个最笨的办法,就是新建一个程序每隔一段时间按一下原来程序的“确定”键,根本就不用那么复杂。
完全不用截取什么错误信息,霸蛮,来硬的,给他来个霸王硬上弓,有时候最简单的也就是最有用的。
楼主你考虑一下是不是采用。
 
to 16cy:
办法不错,可是那个程序没有确定按钮啊,就是有确定按钮,也未必是这个功能的按钮,这么按不对吧.唉,头都大了,不是我不想简单,关键是简单的办法解决不了问题.领导说了,如果我在写不出来,就让我去24小时守着运行,直到想出解决方案为止.
to psynet123:
写个线程监视倒是可以,就前边讨论的,如果监视的程序只是因为错误卡住不运行,而不是退出,监视就没有用了.监视最多就是监视到这个程序退出没有,但是卡住的没有退出,而程序没有进行实际的处理.这还是解决不了.

综合大家的办法,我测试了我上面提出来的方法,完全可以解决这个问题了,就是hook拦截消息解决.
 
我想到办法了。你可以先找到弹出错误对话框的句柄,这个是很容易找到的,如果你不会可以到网上找些资料,资料很多,新建一个程序,用一个定时器不停地检测这个错误对话框有没有弹出。
如果弹出了,就按下确定,然后重启程序。
一切OK~
这个方法肯定可行,而且安全可靠。

如果你找不到错误窗口的句柄,我这还有一招:
先截取错误对话框的特征点颜色(特征点不用多,两个像素点就行了),然后写一个程序用定时器不停地扫描屏幕中错误信息出现的地方,与特征点进行比较,相同就说明出错了,再点确定按钮,重新启动程序就OK了~
我想错误对话框弹出的位置一定是固定的,那么你可以只需要扫描两个特征点就OK了,也不会占用多少系统资源!
但是如果错误对话框弹出的位置不是固定的,你就在一定范围内扫描,这样占用系统资源稍多些,但也不会有什么影响,因为只要找两个特征点,不用全屏扫描。

问题就这么简单,太聪明的脑袋反而想不出怎么解决。
记得给我加分,呵呵~~~~~~~~~~~~~~
 
还不结贴吗?参与人越多分也分得越多,到时候分不够,我们要造反的哦!
 
判断啥呀,每隔半个小时 无论是否出一场,都重启一下服务器软件
 
分数不够了,嘿嘿,不好意思,100分分给大家将就用哈1!
 
用系统钩子
 
后退
顶部