现在很多共享软件都有"在线升级"功能,比如"Windows 优化大师","超级兔子",所谓在线升级就是一个版本检测
程序
,通过他,用户可以随时检查有没有新版本
程序
,以便及时升级,下面我们就在自己的
程序
里来实现这个功能:http://www.kpwang.com
在正式编程前,我要说的是:我不赞成某些共享软件在每次启动时候都检测新版本,并弹出窗口提醒用户,有时候这大大影响或者妨碍了用户的操作和使用,我们要实现的功能是:让用户自己去检查新版本!
编程思路是这样的:首先我们在主页某个地址放一个 文件 ,然后在我们的 程序 里来检查它,以便获得新版本信息!这里版本信息 文件 我们用INI 文件 来操作!比如下列格式,
[Version]
Version=12
[URL]
URL=http://www.123.com/123.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 文件 ,并放到主页里,然后就可以实现新版本检查功能了!
本文只是讲述一个编程思路,具体功能还要各位编程爱好者自己去完善,比如:如果你想让 程序 自动升级版本,那么你需要把这个版本检查 程序 做成一个单独的EXE 文件 ,通过它来检查新版本,并从 服务器 上下载新版本来覆盖旧版本!这些功能,大家就根据自己的需要去实现吧!
注:本 程序 在 VC ++6.0, Windows XP 下调试通过!
在正式编程前,我要说的是:我不赞成某些共享软件在每次启动时候都检测新版本,并弹出窗口提醒用户,有时候这大大影响或者妨碍了用户的操作和使用,我们要实现的功能是:让用户自己去检查新版本!
编程思路是这样的:首先我们在主页某个地址放一个 文件 ,然后在我们的 程序 里来检查它,以便获得新版本信息!这里版本信息 文件 我们用INI 文件 来操作!比如下列格式,
[Version]
Version=12
[URL]
URL=http://www.123.com/123.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 文件 ,并放到主页里,然后就可以实现新版本检查功能了!
本文只是讲述一个编程思路,具体功能还要各位编程爱好者自己去完善,比如:如果你想让 程序 自动升级版本,那么你需要把这个版本检查 程序 做成一个单独的EXE 文件 ,通过它来检查新版本,并从 服务器 上下载新版本来覆盖旧版本!这些功能,大家就根据自己的需要去实现吧!
注:本 程序 在 VC ++6.0, Windows XP 下调试通过!