ttbb 发表于 2009-11-30 10:54:49

关于自动下载升级的问题,请教大家

大家好,我正在做一个自动升级的软件.现在遇到一个困难,麻烦大家指教,谢谢:
程序检查到新版本后,需要自动下载更新该程序并且能再次启动.版本检测及下载目前都可以实现,但如何能去更新这个正在运行的程序并且能再次启动它,不知如何来实现?
谢谢大家的指点.

afan 发表于 2009-11-30 11:10:14

下载完了给个提示,是否重启使用新版,确定后自动重启

ttbb 发表于 2009-11-30 11:55:09

如何用下载的新版本来更新目前正在运行的这个程序呢?谢谢

afan 发表于 2009-11-30 11:57:22

你下载后的文件是如何命名的

ttbb 发表于 2009-11-30 12:06:24

和正在运行的程序是同一名称.下载到TEMP目录中.

afan 发表于 2009-11-30 12:14:41

$Msg = MsgBox(48 + 4, "", "新版本已成功下载,是否重启并启用新版?")
If $Msg = 6 Then
        FileMove(@ScriptFullPath, @ScriptFullPath & '.bak')
        FileMove(@TempDir & '\' & @ScriptName, @ScriptFullPath)
        Exit (ShellExecute(@ScriptFullPath))
EndIf

wisly 发表于 2009-11-30 12:25:53

原来exit参数里面还能带这类语句啊,学习了!help里面根本就没提嘛

顽固不化 发表于 2009-11-30 12:33:12

无法覆盖正被系统使用的文件。如想更新,方法有二:
1.结束正在运行的程序,覆盖结束后,重新启动这个程序
2.做一个自动更新程序,放到runone里,下次启动系统时立即更新

afan 发表于 2009-11-30 13:03:39

LZ的软件并未牵涉到系统及锁定,一般的程序都可以在运行时被更名(但不能删除)~ 所以6#代码足矣~

dajun 发表于 2010-5-18 06:00:39

学习了,6#代码很好。

newuser 发表于 2010-5-18 13:50:26

回复 1# ttbb
能否将你的代码也公开一下呢?

boyhong 发表于 2010-5-18 18:16:19

6楼方法一定要试试,我目前采用的是:另下载到TEMP目录,然后运行他,进行替换回去。。。。。:face (13):
页: [1]
查看完整版本: 关于自动下载升级的问题,请教大家