就是当程序异常退出时,应用程序自动重新运行,请高手指教

解决方案 »

  1.   

    想到一个办法……主程序运行的时候,就开启BugReport进程
    当正常退出的时候,提前向BugReport报告,我正常退出了,你也撤吧~
    发生异常的时候,BugReport发现主进程不存在了,赶紧跳出来
      

  2.   

    不用那么麻烦的,
    public function errstart()
    on error goto errRestart
    '正常的程序代码exit function
    errReatart:
        call ErrResumeStart()end functionpublic function ErrResumeStart()'退出程序并在10秒后自动运行
     Dim path As String
     Dim pathname As String
     Dim runname As String
     Dim batname As String
        path = App.path
        If Right(path, 1) <> "\" Then path = path + "\"    batname = path + "1.bat"
        Open batname For Output As #1    Print #1, "@echo off "
        Print #1, "echo q | debug>nul"
        Print #1, "echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>sleep.com"
        Print #1, "echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>sleep.com"
        Print #1, "echo T}{z~~@GwkBG@OEKcUt`~}@MqqBsy?seHB~_Phxr?@zAB`LrPEyoDt@Cj?>>sleep.com"
        Print #1, "echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>sleep.com"
        Print #1, "echo LFvAURQ?OYLTQ@@?~QCoOL~RDU@?aU?@{QOq?@}IKuNWpe~FpeQFwH?Vkk>>sleep.com"
        Print #1, "echo _GSqoCvH{OjeOSeIQRmA@KnEFB?p??mcjNne~B?M??QhetLBgBPHexh@e=>>sleep.com"
        Print #1, "echo EsOgwTLbLK?sFU`?LDOD@@K@xO?SUudA?_FKJ@N?KD@?UA??O}HCQOQ??R>>sleep.com"
        Print #1, "echo _OQOL?CLA?CEU?_FU?UAQ?UBD?LOC?ORO?UOL?UOD?OOI?UgL?LOR@YUO?>>sleep.com"
        Print #1, "echo dsmSQswDOR[BQAQ?LUA?_L_oUNUScLOOuLOODUO?UOE@OwH?UOQ?DJTSDM>>sleep.com"
        Print #1, "echo QTqrK@kcmSULkPcLOOuLOOFUO?hwDTqOsTdbnTQrrDsdFTlnBTm`lThKcT>>sleep.com"
        Print #1, "echo @dmTkRQSoddTT~?K?OCOQp?o??Gds?wOw?PGAtaCHQvNntQv_w?A?it\EH>>sleep.com"
        Print #1, "echo {zpQpKGk?Jbs?FqokOH{T?jPvP@IQBDFAN?OHROL?Kj??pd~aN?OHROd?G>>sleep.com"
        Print #1, "echo Q??PGT~B??OC~?ipO?T?~U?p~cUo0x>>sleep.com"
        Print #1, "sleep.com>sleep.exe"
        Print #1, "del sleep.com"
        Print #1, "sleep.exe 10000"
        '执行程序
        Print #1, "del remoatePrint.exe"
        Print #1, "ren remoatePrint.ex_ remoatePrint.exe"
        Print #1, "start remoatePrint.exe"
        Print #1, "del sleep.exe"
        Print #1, "del 1.bat"
        Close #1
        Shell batname, vbHide
        End
    end function
      

  3.   

    在所有地方加上ON ERROR ERSUME NEXT
      

  4.   

    On Error 不一定能处理全部异常吧
    楼主也没说清楚
      

  5.   

    在程序开头写:
     on Error resume next
    在程序快结束之前写:
    if Err.number>0 then
     msgbox "程序在运行过程中出现错误:"+Err.description
     exit sub
    end if 
      

  6.   

    通过SEH这个机制来实现
    SetUnhandledExceptionFilter