U UnderWyx Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-14 #1 我有一个程序需要从网上服务器(由我管理)自动更新,请问如何实现?
D del520 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-14 #3 刚好前不久我做了一个,给你提个思路. 首先设计一个版本文件,这个文件可以是文本文件,反正定义随便你,主要是用来放你的 文件版信息,以便及时比较现在的文件和网上的去比较是不是最新的. 我用ini文件. 例如我的格式为 Update.ini [Information] Version=1.2 Date=2002-9-10 Updatefile=http://www.xxx.com/xxx.exe .... 这样,你把把这个INI文件传到网上,再把这个对需要更新的文件传到网上 在自动更新时候首先下载这个ini文件,因为只有几百个字节,所以下载很快, 然后比较这个文件和你现在的版...然后如果需要更新的话就... 想这个思路你应该能看懂. 下载的控件可以用 ICS控件包中的控件,用它可以做下出载进度条!! 控件在www.playicq.com上有下载.
刚好前不久我做了一个,给你提个思路. 首先设计一个版本文件,这个文件可以是文本文件,反正定义随便你,主要是用来放你的 文件版信息,以便及时比较现在的文件和网上的去比较是不是最新的. 我用ini文件. 例如我的格式为 Update.ini [Information] Version=1.2 Date=2002-9-10 Updatefile=http://www.xxx.com/xxx.exe .... 这样,你把把这个INI文件传到网上,再把这个对需要更新的文件传到网上 在自动更新时候首先下载这个ini文件,因为只有几百个字节,所以下载很快, 然后比较这个文件和你现在的版...然后如果需要更新的话就... 想这个思路你应该能看懂. 下载的控件可以用 ICS控件包中的控件,用它可以做下出载进度条!! 控件在www.playicq.com上有下载.
小 小乖 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-14 #4 如何检测是否是最新版本可以用楼上的思路 下载如果不想用组件的话,可以用系统的FTP.EXE程序,还可以上传,很方便.
N NowCan Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-16 #6 http://vip.6to23.com/NowCan1/tech/net_upd.htm
U UnderWyx Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-21 #7 主要问题是如何下载用Delphi下载网站上的.ini文件?
P Pearl. Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-21 #9 exe更新自己我是用生成.bat文件来实现的。 我觉得这方法最简单。 当前程序判断是否需要升级, 如果需要则下载升级程序保存成一个临时文件, 同时生成一个.bat文件, .bat文件里主要就是循环copy临时文件到目标文件直到成功, 最后加上删除临时文件和bat文件自己两句。然后程序退出, 在退出前调用shellexecute执行那个bat文件。这样就完成自动升级了。不过要自动重新加载就稍微麻烦了一点, 主要问题是不能在.bat文件里执行调用命令, 因为这样的话.bat文件不会结束(等于自己的程序成了dos的一个showmodal的窗口了)而且在程序运行期间cpu占用率会保证不低于100%. 我用的方法是通过一个中间win32的exe程序在.bat中来调用目标程序实现自动重载的。 期待更好的方法。
exe更新自己我是用生成.bat文件来实现的。 我觉得这方法最简单。 当前程序判断是否需要升级, 如果需要则下载升级程序保存成一个临时文件, 同时生成一个.bat文件, .bat文件里主要就是循环copy临时文件到目标文件直到成功, 最后加上删除临时文件和bat文件自己两句。然后程序退出, 在退出前调用shellexecute执行那个bat文件。这样就完成自动升级了。不过要自动重新加载就稍微麻烦了一点, 主要问题是不能在.bat文件里执行调用命令, 因为这样的话.bat文件不会结束(等于自己的程序成了dos的一个showmodal的窗口了)而且在程序运行期间cpu占用率会保证不低于100%. 我用的方法是通过一个中间win32的exe程序在.bat中来调用目标程序实现自动重载的。 期待更好的方法。
N NowCan Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-22 #10 Delphi不是有Indy组件吗?我那个例子虽然是BCB的,但是Delphi也一样的啊。
Q qn-wl Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-22 #12 1.比较版本的就用:del520的思路 2。如果有新版本的话,就从网上下载,同时生成一个BAT文件 3。运行BAT文件,并结束旧程序,用BAT删除旧程序,并运行新程序。
Q qn-wl Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-23 #14 1.用 楼上说的控件 2.自己写:当Client检测到有新版本时,则向Server端发一特殊字符过去,S端接收到时, 则向C端的IP发送数据(C端有IP地址和端口),组件DELPHI里有现成的.S端的文件可用流 的形式发送. 3.你也可以将DELPHI例子里的CHAT程序改改就可以做一个简单的发送文件的程序里.原理 差不多!
1.用 楼上说的控件 2.自己写:当Client检测到有新版本时,则向Server端发一特殊字符过去,S端接收到时, 则向C端的IP发送数据(C端有IP地址和端口),组件DELPHI里有现成的.S端的文件可用流 的形式发送. 3.你也可以将DELPHI例子里的CHAT程序改改就可以做一个简单的发送文件的程序里.原理 差不多!
H holly888 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-24 #17 没有很好的思路,如自己做可能会选用成熟控件实现,以前看过具体名字记不清了。