请都各位:因为升级文件本身的缺陷,所以我必须用当前升级文件下载一个新的升级文件替换当前的升级文件,请问在Delphi 中怎么实现程序自己替换自己?(在线等,请高手指点,谢谢。QQ52479694)

解决方案 »

  1.   

    一般的做法是把文件下到一个temp文件夹里,下载完成后,退出程序,启动copy文件线程,把文件copy到应用程序下,再启动应用程序。
      

  2.   

    一般的做法是把文件下到一个temp文件夹里,下载完成后,退出程序,启动copy文件线程,把文件copy到应用程序下,再启动应用程序。
    ========================================
    如何再替换原文件自身呢? 
      

  3.   

    如果你的升级程序可以自动运行一个下载到本地的程序就可以
      1.让升级程序下载新的升级程序到临时目录,并自动运行它 
      2.新的升级程序找到旧升级程序的进程,并且结束它
      3.拷贝自身替换旧的升级程序文件
      4.执行新的升级程序,然后终止进程我通常这样设计升级程序,假设升级程序是U.exe
    在升级程序开始时总是包含这样的逻辑:
    1.检测命令行中是否包含/flag参数 如果不是则
       2.如果不包含/flag,将自身拷贝为U1.exe,执行U1.exe /flag 并终止进程。
       3.如果包含/flag,开始进行升级工作
    这样,升级程序总是可以替换掉所有文件,包含升级程序U.exe本身。
    如果升级过程中发现U.exe被更新了,U1.exe只要终止进程并且启动U.exe即可。