如题

解决方案 »

  1.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      application.Terminate;
      winexec(pchar(application.ExeName),1);
    end;
      

  2.   

    so esay
    关闭时,执行一个.bat 比如a.bat
    里面写上 
    @ECHO OFF
    "E:\wild\Map_030819\ELESEA.exe" 你程序的全路径
    " DEL a.bat" 删除这个bat 这个是病毒常用的技俩:)或者再做个程序
    restart.exe关闭时调用这个程序
    让restart.exe来重新启动你的程序。
      

  3.   

    在关闭之前先SHELLEXECUTE或WINEXEC自己,也就是说,在自己关闭之前,已经有2个实例在运行了。然后关闭自己,保留后来的实例。
      

  4.   

    我的思路是程序A运行的时候会检查启动一个程序B,并且把状态写入一个dat文件,如果程序A非法关闭了,则dat文件中的状态并未被删除掉,则程序B监控到,并且重新启动A.
    腾讯似乎就是这么做的.
      

  5.   

    我胡说的,自己没有动手做过,不过思路应该没多大问题.
    如果不小心程序B也被关闭了,那就没法监控到,所以QQ并不是每次崩溃都会自己重新启动的。
    :)
    经常玩QQ玩出来的经验;
      

  6.   

    var
     s:string;
    begin
        s:=Application.ExeName;
        Close;
        ShellExecute(application.Handle,pchar('Open'),pchar(s),nil,nil,SW_SHOW);
    end;
      

  7.   

    在主form的form_close事件里
    winexec('.\你的exe')