“通用更新程序”源码分享

这个学期要过去了,除了一开始写了那个追美剧的软件,基本没写什么,当然,很可惜那个软件最终有一些功能没有实现,所以就没有拿出来给任何人看,等于软件就废了:搜索功能、视频下载功能没法实现。

  不过值得欣慰的是,为了这款软件的更新我重新写了一款“软件更新程序”,所有软件都可以通用。
  只需要将要更新的地址、文件列表写在一个XML数据文件中,然后运行更新程序就可以实现更新。
  
  XML文件如下(我个人对XML很不熟悉,只是百度了一些需要的功能):
**********************************************************************
  
<?xml version="1.0" encoding="gb2312"?>

<update>

  <updateinf>

     <site>http://winterfeel.com/update/</site>                                  //更新内容所在的网址

     <version>1.0.1</version>                                                           //最新版本

     <date>2012-11-22</date>                                                         //日期

     <inf>修补了一些bug</inf>                                                          //更新时弹出的提示

  </updateinf>

  <updatefile>                                                                                  //更新的文件列表

     <file>1.exe</file>

     <file>2.exe</file>

     <file>3.exe</file>

     <file>4.exe</file>

  </updatefile>

  <updaterun>

     <msg>更新完毕,现重新启动主程序</msg>

     <run>1.exe</run>                                                                       //更新完毕后运行的程序

  </updaterun>

</update> 
*************************************************************************** 

你只需要在你的程序中:
1.下载如上XML文件
2.对比新版本与程序版本,如果有更新则
3.运行updater
4.结束


例如C#:

            if (vs != version)

            {

                MessageBox.Show("检测到程序有更新,现在开始启动更新程序...");

                System.Diagnostics.Process.Start(Application.StartupPath + @"\updater.exe", "");

                Application.Exit();

            } 


更新程序界面:
(为了避免程序界面风格与主程序风格不一致,所以就没有进行任何美化)





如图就能进行正常的软件更新了。

  当然,这里写出来的都只是最基本的更新功能,还有很多细节方面都没有做,各种容错也没有做,比如基本的检查文件存在什么的。
这些需要的可以自己补上去。

  在这里就将灯灯写的C#(VS2010)源码分享给大家,希望对大家有所帮助。

     地址:
http://pan.baidu.com/s/1GMe2B

                                                                                                                    ------------不灭的小灯灯 2013-12-13

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通用软件自动更新模块,本程序不能主动运行,需要传递命令行参数,格式如下: 命令行参数 两种工作模式: 1.详细信息升级,格式如下(路径尽量使用""引起来,避免因为路径包含空格而调用失败): 自动升级模块可执行路径 需要升级的主程序路径 旧版本号 新版本号 程序下载地址 detail(固定写法) AutoUpdate.exe "E:\Visual Studio 2005\Projects\AutoUpdate\debug\测试.exe" 旧版本号 新版本号 http://.../WlwDir/10000/TaobaoDB.exe detail 2.主动分析模式,格式如下: 自动升级模块可执行路径 需要升级的主程序路径 旧版本号 新版本号(占位符,没实际用处,为了和模式1具有相同数量的参数,方便处理) 包含程序升级信息的网址(返回Json数据) linkurl(固定写法) AutoUpdate.exe "E:\Visual Studio 2005\Projects\AutoUpdate\debug\E语言示例.exe" 3.0 1.0 http://localhost:9572/UpdateWeb/Default.aspx linkurl http://localhost:9572/UpdateWeb/Default.aspx 返回数据为: {"SoftName":"测试软件","NewVersion":"2.0","DownUrl":"下载软件的url链接"} 如果返回的NewVersion比当前软件的版本高,则执行升级,否则升级程序自动退出。 注意: 上述格式最后还有一个可选的参数,为待升级程序的主窗口句柄,如果不知道怎么回事,此参数可以忽略。 VC写法如下,sprintf(参数,"0x%x",GetSafeHwnd()) //使用Shell启动升级程序即可 ShellExecute(this->m_hWnd,"open","AutoUpdate.exe",命令行参数,NULL,SW_SHOW); 有不明白的朋友,请与我联系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值