如类似各杀毒软件实现在线升级。

解决方案 »

  1.   

    见过一个控件,叫AUTOUPGRADE,可以从网站获取升级程序。
    升级的过程是关闭了主程序,留下升级的窗体,然后从网站下载更新程序,最后再启动程序。
      

  2.   

    呵呵,方法有一些啊。贴一个主要思路是:  主程序运行时通过HTTP和 FTP 或 FILE 协议从网上下载下来最新的
    程序版本后, 主程序释放出一个小程序 单独建立一个进程完成自身覆盖自己的工作。程序流程是:  主程序制作:  将一个完成自身升级的小程序先用 aspack压缩
    然后用 lz 算法压缩程序压缩。 做成资源文件编译到主程序内部.主程序运行 --> 释放update_self 小程序. 
    使用createprocess 建立一个update_self.exe的新进程
    参数给定  update_self.exe  PID  new_exe  old_exe
    参数PID :是主程序的进程ID   new_exe 是新程序. old_exe 是旧的主程序本身.然后主程序 terminateupdate_self 小程序开始工作
    先判断系统平台,  循环查找查找主程序进程ID 是否还在内存中存在.
    如存在 说明主程序还没有完全退出. 如不存在 则开始更新 copyfile
    将主程序(old_exe) 替换成 new_exe
      

  3.   

    用DELPHI的动态加载BPL库.在CSDN|软件|DELPHI源程序下有相应的例子下载.金山毒霸的在线升级就是用的动载BPL文件.
      

  4.   

    在网上放一个 ini文件,
    查找 ini 文件中的版本号是否比当前版本大,
    如果大的话,就关闭主程序,调用升级程序。我在ini文件是这样定义的。
    [new]
    version=20030701
    [20030701]
    mainfile=main.exe
    datafile=data.exe
    otherfile=other.exe我首先找ini文件,找到new,发现当前版本为20030701
    与现程序比较,发现比较新,
    然后再定位节点 20030701
    发现有3个文件需要更新,
    假定文件放在 www.sina.com.cn/upgrade/目录下
    然后用 idhttp.get('http://www.sina.com.cn/upgrade/main.exe')
    成功的话再
    idhttp.get('http://www.sina.com.cn/upgrade/data.exe')
    idhttp.get('http://www.sina.com.cn/upgrade/other.exe')不过这样由于服务器容易断线和其它socket错误。
    所以我做成一个zip文件,ini文件还是一样.
    但下载过程需要改一改
    首先用
    idhttp.get('http://www.sina.com.cn/upgrade/20030701.zip')20030701.zip里面的文件都写在 ini 文件的节点
    [20030701]
    mainfile=main.exe
    datafile=data.exe
    otherfile=other.exe然后在升级程序去把它解压,然后再覆盖文件,
      

  5.   

    可以去这里看一看,免费提供,绝对实用:
    http://www.aslike.net