我要做一个客户端,在客户端可以上网的条件下,会自动提示升级程序,下载后如果主程序已打开的,如何关闭主程序再安装,安装完再运行新的程序。是否需要用到多线程?请各位大家给些提示和建议。最好有代码给我看看。谢谢!![email protected]

解决方案 »

  1.   

    多线程倒是没必要
    关闭主程序是必然的,用FindWindow,TerminateProcess 就可以
    然后用新文件覆盖旧文件,再shell就可以了
      

  2.   

    还有我是否要用TIMER 控件每隔10分钟检查一次是否有新版本?不过TIMER 好想最多支持1分多钟。
      

  3.   

    如果我用 FindWindow,TerminateProcess 把进程干掉,我的升级程序可能要单独造成一个EXE运行·!
      

  4.   

    建议看看flashget的升级方法,用ini文件!
      

  5.   

    我在WEB服务器上已经放上最新的版本号,我从远程读取版本号,如果比本地新则下载该文件,但是我要先把本地主程序关闭后才能覆盖该文件,所以我想把升级部分做成另外一EXE调用,覆盖完后再重新启动客户端程序。
      

  6.   

    再问TerminateProcess 在WIN98和WIN2000下的调用方法是否一样?
      

  7.   

    Server : 开端口监听,有Client接入就将最新版本号发送给ClientClient:每次运行时都检查Server的最新版本(有必要那么频繁么),该下时就下下载用INet还有什么困难么?
      

  8.   

    我也想做一个类似的程序,我想在服务器放一个INI文件,form每次load时载入这个文件进行对比,自动更新,可我想更新的是许多文件,下载后再shell,但我不知道下载后怎么返回一个值确定下载完成并且可以shell!
      

  9.   

    可以把你要升级的东东存为*.ini,或其它文本文件,文件格式可如下:(至少要包括存放路径、版本号,也可加入是否要运行),例如:
    file1path=\aaaa.exe
    ver=1.01.09
    run=true'这里可以保存下载后该文件是否要运行,
    file2path=\aaa\bbbb.htm
    ver=03.06.09
    false 
    ...
    每次开机下载这个文本文件,进行对比。对主执行程序可根据版本来判断是否版本最新,对其它文件的版本信息可以保存在注册表中,一个文件在升级后注册表信息应包括路径、文件名、版本号,在升级不必保存到注册表中去,因为你读取是空时,即表示可以升级了。
    我就是这样做的,这样的好处是可以对任何文件升级.
      

  10.   

    邮件已经发送,最好还是做成一个专门的应用程序服务端到是没有什么问题(因为简单)主要全在客户端,因为用INet下在,还要开IIS测试.....
    (这个太麻烦,即使我做了也不会适合你的,这些地方已经用msgbox 预留了)基本上可以实现核对本
      

  11.   

    天这些资料我找了很久啊好心人,给我一个例子吧,可用的例子,谢谢了[email protected]
      

  12.   

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

  13.   

    用Timer和inet控件足够了,
    Timer控件是只可以设置1分钟
    但是你可以做了累加啊,
    比如:设置成1分钟触发一次,累加10次不就10分钟了
      

  14.   

    inet控件连接你的下载服务器的程序,然后下载到你设定的目录,或者是用户选择
    把那个目录记下来,然后调用Shell就oK了,
    基本思路就是这样了,代码你自己写吧。
      

  15.   

    能否给我发一个关于自动升级问题,谢谢![email protected]
      

  16.   

    给我也发一个吧 [email protected]