程序自动更新的问题,急...在线等

sudeping_ok 2008-01-16 11:20:06
我想做一个文件自动更新的update.exe程序,思路是在程序启动时自动检查某个固定路径下是否有最新程序,通过对比文件创建时间来确定是否有最新程序。如果有就关闭该程序,同时启动更新程序对该文件进行复制更新。

如:原可执行文件为 c:\WSL\WSL.exe (创建时间为:2007年12月24日, 16:41:51)
启动时检查到远程服务器\\192.168.0.1\update\WSL.exe (创建时间为:2008年1月7日, 12:21:45)有最新程序。那么就启动c:\WSL\update.exe且退出c:\WSL\WSL.exe,拷贝\\192.168.0.1\update\WSL.exe到c:\WSL\下,以完成更新。

以上更新程序的思路是否正确?并请高手指点一下如何确定该目录下有否有该文件存在,以及如何比较文件的创建时间?谢谢
...全文
124 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cowboy22 2008-03-05
Visession Anyupdate自动升级软件系统
免费将自动升级功能加入您的软件产品中
网站:http://www.visession.com/anyupdate
下载:http://www.visession.com/anyupdate/DownLoad.htm
回复
Phenlit 2008-01-20
VB可以引用FSO,跟系统的对文件操作一样,增删改,查改属性,其实VB开发的程序都在文件属性中带有版本号,这个版本号要你在开发打包时就要填写的,直接读取比较就行了;如果是数据库的话,比较修改时间(不是很准确,改时间问题)或比较ID、大小了;

查远程数据,方法也相同,如果想偷懒的话,就直接用调用系统的命令了

更新时,先把文件传过来做临时再关闭程序Update
回复
LCAAA 2008-01-20
建议楼主,最好把最新程序放到数据库中,这样只维护数据库就可以了。
回复
liuhui23 2008-01-17
对比文件创建时间?不是应该是对比修改时间吗?
回复
LCAAA 2008-01-17
还是把程序的版本号存到数据库中,程序运行先判断版本号,如果程序的版本比数据库中的旧。那就关闭主程序,打开下载程序,覆盖旧的程序就可以了。
回复
sudeping_ok 2008-01-16
我是准备在局域网内用的,
回复
cupoflife 2008-01-16
详见里面的SystemSet.INI文件说明
http://www.medicchina.com/xiubiyuan/liveupdate.rar
回复
cupoflife 2008-01-16
你准备是在公网上用还是在局域网内用?

局域网内用的我有..............
回复
sudeping_ok 2008-01-16
我需要源代码进行学习。
回复
cupoflife 2008-01-16
楼上免费的程序也不要???
回复
sudeping_ok 2008-01-16
Dim fso As New FileSystemObject '用户定义类型?谢谢
回复
guyehanxinlei 2008-01-16
同意楼上
以下是获取文件的版本号
    Dim fso As New FileSystemObject
MsgBox fso.GetFileVersion("D:\update.exe")
回复
fj182 2008-01-16
感觉比较文件时间不是最好的办法。
可以比较文件版本,文件版本可以从文件本身获取(不是所有的文件),也可以用一个单独的文件来记录版本,如INI或者XML。流行的做法就是这样。
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7450

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告