当前位置: 首页 > 图文教程 > 开发语言 > VC++ > VC6做简易自动升级程序

VC++
在类VC的界面实现中加入目录树
软件换肤技术在 BCB 中的实现
利用非模窗口生成MDI介面
报表输出轻松搞定
Windows 中不规则窗体的编程实现
解说Win32的窗口子类化
使用测试优先方法开发用户界面
一个简单的登录对话框的实现
一个简单的日记本程序
从资源中加载皮肤
一个在RichEdit中添加表情图象的类
ActiveSkin 4.3 软件换肤在VC中的实现
一种另类“关于(About)”对话框的动态显示方法
对话框打印预览及打印
关于如何换肤、子类化的解决方案
制作 MSN、QQ 的消息提示窗口
如何对 BCGControlBarPro 进行换肤
定制个性化的对话框窗口类
改变窗口中的光标形状
更新MFC中的视图,跟踪.NET Framework中的事件

VC++ 中的 VC6做简易自动升级程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 611 ::
收藏到网摘: n/a

当前很多软件都有"在线升级"功能,比如"QQ","360安全卫士",所谓在线升级就是一个版本比对程序,通过它,用户可以随时检查有没有新版本程序,进行最新版本和当前版本的比对,以便及时升级,下面我们就在自己的程序里来实现这个功能:

  在正式编程前,我要说的是:我不赞成某些共享软件在每次启动时候都检测新版本,并弹出窗口提醒用户,有时候这大大影响或者妨碍了用户的操作和使用,我们要实现的功能是:让用户自己去检查新版本!

  编程思路是这样的:首先我们在主页某个地址放一个文件,然后在我们的程序里来检查它,以便获得新版本信息!这里版本信息文件我们用INI文件来操作!比如下列格式,

[Version]
Version=12
[URL]
URL=http://www.ibiancheng.cn/xxx.exe

  其中的 Version是新版本号,12表示V1.2版,这个格式完全可以自己设置,URL是新版本程序下载地址

  另外,要获取INTETNET上的文件,我们一般有2种办法,一是通过FTP下载,二是HTTP直接连接,如果你有国际域名空间,那么就可以使用匿名FTP在程序里获取版本信息文件,但是对于使用免费主页的朋友来说就麻烦了。因为服务器不是我们的,这就不太方便了。那么采用HTTP方式获取版本信息文件就很有必要了!要获取网站上的某个文件并保存在本地,我们只需要一个API函数URLDownloadToFile()即可,当成功下载INI文件后我们就可以读取这个文件并进行分析工作了!

  具体实现过程:

  打开VC,建立MFC程序,放置一个标签IDC_VER ,用来输出信息,另外安排2个按狃,分别是IDC_CHECK,IDC_DOWNLOAD

  前者用来检查是否有新版本,后者用来下载新版本程序!

  首先我们添加一个成员变量char new_url[100] 来存放新版本程序的下载地址:

  然后在IDC_CHECK 按钮事件里输入以下代码来检查有无新版本:

SetDLgItemText(IDC_VER,"正在检查版本更新,请稍后。。。。。。");

int ret=URLDownloadToFile(NULL,"http://ip/vesion.ini","c:\\version.ini",0,NULL);

if (ret==S_OK) //如果下载成功
{
// 读取Version 段的数据,得到新版本好
int newversion=GetPrivateProfileInt("Version","Ver",10,"c:\\version.ini");
if (newversion>10) //跟当前版本比较,10表示目前版本V1.0 ,根据具体版本自己设置
{
SetDLgItemText(IDC_VER,"有新版本了!");
// 得到新版本下载地址给变量new_url
GetPrivateProfileString("URL","URL",0,new_url,100,"c:\\version.ini");
}
else
SetDLgItemText(IDC_VER,"抱歉。还没有新版本!");


DeleteFile("c:\\version.ini"); //用完后删除

}
else
SetDLgItemText(IDC_VER,"网络连接失败!");

  在IDC_DOWNLOAD 按钮事件里输入以下代码以便打开IE浏览器下载新文件:

ShellExecute(this->m_hWnd,"open",new_url,NULL,"c:\\",SW_SHOW); 

  现在我们编辑一个VERSION.INI文件,并放到主页的某个目录下(比如本站www.ibiancheng.cn就可以放到http://www.ibiancheng.cn/xxx/VERSION.INI),然后就可以实现新版本检查功能了!

  本文只是讲述一个编程思路,具体功能还要各位编程爱好者自己去完善,比如:如果你想让程序自动升级版本,那么你需要把这个版本检查程序做成一个单独的EXE文件,通过它来检查新版本,并从服务器上下载新版本来覆盖旧版本!这些功能,大家就根据自己的需要去实现吧!

  上面的代码在VC6.0, Windows XP sp2 下调试通过!