工控编程吧
标题:
上位机MFC软件在线升级实例源代码
[打印本页]
作者:
qq263946146
时间:
2019-10-15 11:44
标题:
上位机MFC软件在线升级实例源代码
(, 下载次数: 1)
上传
点击文件名下载附件
我们软件编写发布后,都要进行更新升级。
一般如QQ,微信都支持在线升级功能。
当前这个例程也实现类似功能,
运行例程,
选择界面的连接地址,
可以点击确认升级程序。
升级按钮会新开一个线程来实现升级相关工作。
例如如下:
UINT UpdateMyProgram(LPVOID v)
{
CMyUpdateDlg *dlg=(CMyUpdateDlg *)AfxGetApp()->GetMainWnd();
//得到本程序路径
CString strFilePath;
strFilePath=dlg->pMyFun->GetFileFullPath();
BOOL bErrorSign;
bErrorSign=FALSE;
int iPos_U;
CString strPath,strOutLocal;
iPos_U=strFilePath.Find("MyUpdate.exe");
strPath=strFilePath.Mid(0,iPos_U);
//得到本地客户端程序的保存位置/路径
strOutLocal.Format("%s%s",strPath,_T("MyClient.exe"));
//检测新版本,如果发现新版本,则升级
CString NewVersion,strUpdateUrl,OldVersion,strUrl,strInfo,strOutUrl;
//本软件的版本号
OldVersion=_T("1.0.0.1");
// dlg->m_IDC_UPDATEURL01.GetLBText(m_IDC_UPDATEURL01.GetCurSel(),strUrl);
strUrl=dlg->m_strUpdateUrl;
//得到新版本相关资料
dlg->m_IDC_STATIC_UPDATE.SetWindowText(_T("正在检测新版本..."));
strInfo=dlg->pMyFun->InternetGetInfo(strUrl);
if(strInfo!=_T("Error"))
{
//得到版本号及升级地址
int iPos1,iPos2,strLen;
strLen=strInfo.GetLength();
iPos1=strInfo.Find("#");
iPos2=strInfo.Find("#",iPos1+1);
NewVersion=strInfo.Mid(iPos1+1,iPos2-iPos1-1);//版本号
iPos1=iPos2;
iPos2=strInfo.Find("#",iPos1+1);
strUpdateUrl=strInfo.Mid(iPos1+1,iPos2-iPos1-1);//升级地址
//比较新旧版本
if(dlg->pMyFun->TestVersion(OldVersion,NewVersion))
{
dlg->m_IDC_STATIC_UPDATE.SetWindowText(_T("正在下载新版本..."));
dlg->pMyFun->InternetGetFile(strUpdateUrl,strOutLocal);
}else
{
bErrorSign=TRUE;
}
}else
{
bErrorSign=TRUE;
}
if(bErrorSign)
dlg->m_IDC_STATIC_UPDATE.SetWindowText(_T("更新失败,请检测网络是否正常!"));
else
dlg->m_IDC_STATIC_UPDATE.SetWindowText(_T("您的程序已经升级为最新版本!"));
dlg->m_IDC_UPDATEURL01.EnableWindow(TRUE);
dlg->GetDlgItem(IDC_STATIC_UPDATE)->ShowWindow(SW_SHOW);
dlg->GetDlgItem(IDC_PROGRESS1)->ShowWindow(SW_HIDE);
dlg->GetDlgItem(IDC_UPDATE)->ShowWindow(SW_SHOW);
AfxEndThread(0);
return 0;
}
复制代码
附件含两部分内容
1) update文件夹下为服务器所用文件.
2) MyUpdate为客户端所用文件源程序.
下载地址:
(, 下载次数: 1)
上传
点击文件名下载附件
[halcon]1[/halcon]
[MFC408]1[/MFC408]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4