主页 > 编程资料 > Delphi >
发布时间:2015-09-22 作者:网络 阅读:158次

思路1:
需要重启程序的时候,在onclose事件里面调用了一个批处理bat文件(AT 脚本);
然后在批处理文件里面加入适当延迟(比如2秒);通过批处理文件重新启动该程序;

思路2:
你另外写个小程序,用那个程序来启动你的程序

你的程序关闭时-》调用那个小程序
小程序启动你的程序(先判断程序是否已经关闭)
小程序自己关闭

在onclose里面
shellexecute(self.handle,nil,PChar('c:\小程序.exe'),nil,nil,sw_shownormal,',',');

小程序的代码
在formcreate里面
shellexecute(self.handle,nil,PChar('c:\你的程序.exe'),nil,nil,sw_shownormal,',',');
close;

思路3:
在退出前调用打开程序的语句,最简单

Application.Terminate;
winexec(Pchar(paramstr(0)), sw_show,',',');

做成函数:
procedure KillApplication(Restart: boolean,',',');
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
if Restart then
begin
GetStartupInfo(StartInfo,',',');
FillChar(ProcInfo, SizeOf(TProcessInformation), #0,',',');
CreateProcess(nil, GetCommandLine, nil, nil, False,
CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil,
PChar(StartDir), StartInfo, ProcInfo,',',');
end;
TerminateProcess(GetCurrentProcess, 1,',',');
关键字词: