设计自动升级软件

设计自动升级软件

ID:14945046

大小:28.50 KB

页数:5页

时间:2018-07-31

设计自动升级软件_第1页
设计自动升级软件_第2页
设计自动升级软件_第3页
设计自动升级软件_第4页
设计自动升级软件_第5页
资源描述:

《设计自动升级软件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、现在越来越多的软件具备了自动升级功能,用户在使用软件的过程中,软件自动通过网络从指定的服务器获得软件最新版本的信息,并自动下载相应的升级文件来实现软件版本的更新,免去了用户自己上网检查和下载软件的最新版本的麻烦,这是一项很贴心的功能,在一定程度上增加了软件的易用性和友好度。  软件的自动升级功能可以独立于主程序,有一定的通用性,可作为一个单独的可执行程序由主程序调度运行。以下是我在Windows平台下设计自动升级软件中的一些收获和体会。  自动升级软件是一个独立的应用程序(单独的可执行文件AutoU

2、pdate.exe),供软件开发者编写代码,以外部程序的方式运行,例如调用ShellExecute这个API函数,或者在各种编程语言的中采用不同的方法来运行,C语言可以用system函数、VisualBasic语言则可以用Shell函数,其他语言也有类似的方法。  自动升级软件的基本功能是对软件进行升级,首先需要能检测到软件最新版本的信息。软件开发者将软件最新版本的信息保存为一定格式的文件,放置到网络上固定的地址,自动升级软件访问该地址下载文件到本地,解析文件内容以进行升级。文件格式可以是任意的,但

3、考虑到通用性,宜采用容易阅读、容易解析的文件格式。我采用的是INI初始化文件格式(此格式的文件内容以纯文本方式保存,内容被分为一个或多个区段,在区段下存放键、值对,通过区段名、键名可以取得对应的值,在Windows操作系统中可以通过GetPrivateProfile系列API函数读取到值)。下载文件时采用的通信协议也可以是任意的,但最好也是采用通用的成熟的协议,例如HTTP、FTP协议等,充分利用已有的技术,减少开发新协议的工作量。我采用的是HTTP协议,用WinInet系列API函数来实现文件的下

4、载。自动升级软件每运行一次,便到指定的网址下载软件最新版本的信息文件,该网址以命令行参数传入,例如:AutoUpdate.exe/CheckURL=http://www.mysite.org/updatecofig.ini。在本地已经拥有升级配置文件的情况下,可省略此参数,此时自动升级软件将读取同目录下的updatecofig.ini文件的内容来获取软件最新版本的信息。  下载到软件最新版本的信息文件(以下称之为配置文件)后,自动升级软件将解析该文件,根据文件内容来完成软件升级。配置文件必须满足一定

5、的格式,我是通过读取[UPDATE]区段的AppName的值来判断该文件格式是否正确的,如果读到的是空内容则认为文件的格式不正确并停止升级。配置文件中包含软件最新的版本号(Version),用以和本地软件版本号相比较。本地软件版本号以命令行参数方式传入,例如:AutoUpdate.exe/CurrentVersion=1.1。在配置文件中,可以定义一系列的操作命令,包括下载、复制、移动、删除文件、运行外部程序等(最好是能够加上创建快捷方式、修改注册表、注册动态链接库文件等功能,因为时间关系这些功能尚

6、未实现,可通过运行外部程序的方式达到同样的效果),最终完成软件的升级。一次升级需要更新的文件往往不止一个,配置文件中指定了要下载的文件总数(FileCount),以及各个文件的文件名(Name)、下载地址(URL)、文件大小(Size)和要更新到的路径(DestPath),为了确保下载到的文件内容的正确性,还给出了文件的校验码(Hash),在文件下载完毕时对文件进行校验,重新下载校验失败的文件。下载到的文件,有些是要更新到特殊目录(例如Windows系统目录)中去的,在指定DestPath时需要约定

7、一些特殊目录的替换字符串(见附3),进行复制、移动、删除文件操作时将其替换成实际路径。  在升级替换文件时,如果可执行文件或动态链接库等已驻留内存,由于操作系统的保护,文件替换是不能成功的,此时需要结束程序的运行再替换文件,也就是自动升级程序要通知正在运行的主程序:升级已经就绪、需要暂时结束程序来完成升级。通过在应用进程间发送消息的方法来实现升级完毕消息的传递,接收消息的目标窗口句柄、窗口标题、消息内容以命令行参数传入,例如:AutoUpdate.exe/NotifyWindow=12345/Not

8、ifyWindowTitle=MyProgram/NotifyFinish=65535,/NotifyWindow和/NotifyWindowTitle两个参数只需要其中一个便可,升级完毕时将向目标窗口发送WM_USER类型的消息,WPARAM值为/NotifyFinish参数的值。  自动升级软件的另一特点是升级行为是自动的,不需要或只需要很少的用户手动操作。升级可以在后台静默运行,执行完毕时提示用户软件已经升级完毕。在命令行参数中增加/Silence便可以静默方式

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。