kood481748 发表于 2011-12-10 18:03:20

请教:AU3程序怎么实现产生错误后自动重启电脑?

小弟我做了一个程序,放在虚拟机中运行,
有时会因为虚拟机发生问题而导致AU3程序出错,
我的想法是:如果AU3程序出错,则自动重启虚拟机。

请各位老师给小弟指点指点。

chenronting 发表于 2011-12-10 18:38:55

虚拟机如果出错是什么样的,是否会自动停止程序了。?

kood481748 发表于 2011-12-10 20:41:21

回复 2# chenronting

虚拟机有时会自动断网(断网的话就必须要重启虚拟机才可以会正常联网),
然后我的AU3程序就出错了,我的想法是:如果AU3程序出错,则自动重启虚拟机。

sgj584520 发表于 2011-12-10 21:46:08

是不是你的虚拟机问题啊,这个跟程序不搭噶吧

kood481748 发表于 2011-12-10 22:51:07

我知道虚拟机有问题,但是我又不得不用虚拟机,并且我也没办法调好虚拟机,所以从AU3程序着手,一旦AU3程序出错,则自动重启虚拟机

happytc 发表于 2011-12-10 23:01:22

回复 5# kood481748


    一旦au3有出错窗口出现,它就不会再运行代码了,你想在这个au3内部实现是不可能的
再搞个au3,监护若有au3出错窗口出现,就重启
不知道你用的啥虚拟机,要它能支持在虚拟机内部让它重启才行

kood481748 发表于 2011-12-10 23:34:43

回复 6# happytc

有人提议使用猛牛的脚本,
http://www.autoitx.com/forum.php?mod=viewthread&tid=19784&highlight
不过我看不太懂,楼上的老师认为可行吗?

bdancerlc 发表于 2011-12-10 23:49:55

既然是 由于断网造成的,可以在程序中导致错误的代码的前面设置,检测当前网络是否畅通,如果不畅通就重启电脑,设置软件自启动,这样不就行了么?...

kood481748 发表于 2011-12-11 00:10:27

回复 8# bdancerlc

这样也是不行的,因为我的程序在运行过程中本身就会禁用网卡和启用网卡,
所以会有正常的断网情况,而非正常断网就是在启用网卡以后仍然上不了网,
所以我的想法是:如果AU3程序出错,则自动重启虚拟机。

bdancerlc 发表于 2011-12-11 00:22:09

你可以在断开网卡然后启用网卡之后开启另一个 独立的脚本进行监控网络,如果断开启动网路至网络恢复这个过程需要2秒的时间,可以设置5秒进行一次检测,做一个12次的循环,这样就是一分钟,检测到网络自动退出,等待下一次断网重启网络之后再打开,你的网络总不会在一分钟之类还连接不上吧...

(如果程序错误的没有弹窗提示的话,可以用监控进程,进程不存在就重启,这样效率应该比较高..)
重点是在程序错误之前开启这个 子脚本...

希望能帮到你..

shano 发表于 2011-12-11 00:27:06

程序出错代码就不会继续运行了所以用什么办法都没用
我的解决办法就是再做一个监控程序   检测AU3有没有出错 或者退出进程亦或者检测网络时候连接等 如果不符合条件就重启

kood481748 发表于 2011-12-11 00:52:31

感谢楼上两位老师的提点,如果可以使用下贴中的代码进行修改
http://www.autoitx.com/forum.php?mod=viewthread&tid=19784&highlight
实现如果AU3程序出错,则自动重启虚拟机当然最好,

如果不行就另做一个监视程序,检测AU3有没有出错,这样会容易实现一点,
当然也会占用太多的虚拟机内存……

bdancerlc 发表于 2011-12-11 01:38:17

回复 12# kood481748


    监控的程序不用一直开着,在出错前用run()打开,检测做出判断之后推出,下次主程序循环到这个地方的时候再次打开,这样不会占用很多内存的...

happytc 发表于 2011-12-11 02:04:36

回复 12# kood481748


    猛牛那个,不就是再启一个进程监视嘛,就是我上面说的呀
页: [1]
查看完整版本: 请教:AU3程序怎么实现产生错误后自动重启电脑?