最好的办法是. 启动更新程序时, 将当前运行中的旧版本程序的进程句柄 (process handle)让更新继承, 然后让更新程序等待旧版本进程完全终止, 使用 WaitForSingleObject 函数, 等待成功后, 再拷贝新版本的可执行文件覆盖旧版本就没有问题了.

解决方案 »

  1.   

    差一点的办法是, 旧版本启动更新程序后, 更新程序  Sleep 若干秒, 然后再拷贝. 呵呵, 这个办法特笨.
      

  2.   

    realdreamer(贫僧来了) 你好,多谢你的回答。
    能将第一个方法的具体代码写一下吗?你所说的我从没接触过,完全不会。
    第二个方法好像不行,我用的就是这个方法。但不管延时多久,旧版本程序就是不会退出,一定要等到更新程序执行完后才会退出。
      

  3.   

    延时的办法肯定可行,我在好几个软件中都用过。在程序app1中
    Shell "app2"
    END在app2中
    可以用Timer控件计时,当5秒钟后执行拷贝新版本到原版本位置的操作。