完全关闭程序后,再运行外部程序,主要用于升级程序,代码应怎么写,我的写的代码出错,请大家用看看,谢!(50分)

  • 主题发起人 主题发起人 YongSoft
  • 开始时间 开始时间
Y

YongSoft

Unregistered / Unconfirmed
GUEST, unregistred user!
完全关闭程序后,再运行外部程序,主要用于升级程序,代码应怎么写,我的写的代码出错,请大家用看看,谢!
WinExec(PChar(Filefolt+'UpdateFile/UpdateFile.exe'+' "'+Filefolt+'" "3.12" '+ ' "'+
Application.ExeName+ '" "'+Application.Title+'"' ),SW_SHOWNORMAL);//升级程序
Halt;//关闭应用程序
 
WinExec(PChar(Filefolt+'UpdateFile/UpdateFile.exe'),SW_SHOWNORMAL);//升级程序
Halt;//关闭应用程序
 
if IsNT then begin
MoveFileEx(newName,oldName,MOVEFILE_DELAY_UNTIL_REBOOT or MOVEFILE_REPLACE_EXISTING);
end else begin
With TIniFile.Create(myGetWindowsDirectory + 'wininit.ini') do
try
WriteString('Rename',oldName,NewName);
finally
Free;
end;
end;
 

procedure TLinkupMainForm.FormDestroy(Sender: TObject);
{窗体释放}
begin
if FIsUpdate then
WinExec(PChar(ApplicationPath + 'Update.exe'), 1);
end;{FormDestroy}
 
学习来了![:D]
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2091367
我在里面写了一段从网上下载新版本然后生成BAT文件后自动升级的代码
虽然还有很多地方需要完善(错误/异常处理等),但可以参考一下。
 
先把它放到消息队列中按顺序执行会好些,因些这样的话资源就不会冲突,不易出问题。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部