void CUpdateDlg::OnButtonDoupdate() { // 读取升级文件 CFileStatus rStatus; CString szIniData; CString inFile; CString tmp; inFile=m_szPath+\\updateini; CFile UpdateFile; UpdateFileOpen( inFile CFile::modeRead); UpdateFileGetStatus(inFilerStatus); UpdateFileRead(szIniDataGetBuffer(rStatusm_size)rStatusm_size); UpdateFileClose(); CStringArray arType; CStringArray arVersion; for(int i=;i<=;i+=){ AfxExtractSubString(tmpszIniDatai\n); tmpTrimRight(); tmpTrimRight(); arTypeAdd(tmp); } for(int j=;j<=;j+=){ AfxExtractSubString(tmpszIniDataj\n); tmpTrimRight(); tmpTrimRight(); arVersionAdd(tmp); } GetDlgItem(IDC_BUTTON_DOUPDATE)>EnableWindow(FALSE); CProgressCtrl* pBar = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_UPDATE); pBar>SetPos(); m_szEditMessage = \r\n取得网络升级地址\r\n+ServerUrl; UpdateData(FALSE); CInternetSession mySession(NULL); CHttpFile* myHttpFile=NULL; BOOL bIsNewer = FALSE; CString myData; CString myUrl; CString m_SiteRec; myUrl = ServerUrl+?pro=update; myHttpFile=(CHttpFile*)mySessionOpenURL(myUrl); while(myHttpFile>ReadString(myData)){m_SiteRec = myData;} myHttpFile>Close(); mySessionClose(); if(m_SiteRec==ok){ pBar>SetPos(); m_szEditMessage = \r\n已经连通\r\n+m_szEditMessage; UpdateData(FALSE); for(int k=;k<;k++){ CInternetSession mySession(NULL); CHttpFile* myHttpFile=NULL; m_SiteRecEmpty(); myUrl = ServerUrl+?pro=update&module=+arType[k]+&version=+arVersion[k]; myHttpFile=(CHttpFile*)mySessionOpenURL(myUrl); while(myHttpFile>ReadString(myData)){m_SiteRec += myData;} if(m_SiteRec != ok){ CStringinFile; inFile=m_szPath+\\data\\+arType[k]; CFile NetFile; NetFileOpen( inFile CFile::modeCreate | CFile::modeWrite); NetFileWrite( m_SiteRec m_SiteRecGetLength()); NetFileClose(); bIsNewer = TRUE; } pBar>SetPos((k+)*()+); m_szEditMessage = \r\n检查+arType[k]+文件成功!\r\n+m_szEditMessage; UpdateData(FALSE); myHttpFile>Close(); mySessionClose(); } if(bIsNewer){ ::MessageBox(NULL文件已经更新成功!NULLMB_ICONASTERISK); }else{ ::MessageBox(NULL您的数据文件已经是最新版本了!NULLMB_ICONASTERISK); } }else{ ::MessageBox(NULL没有连接网络或者找不到升级服务器请检查NULLMB_ICONASTERISK); pBar>SetPos(); } // 下面是完成了 GetDlgItem(IDCANCEL)>ShowWindow(SW_HIDE); GetDlgItem(IDOK)>ShowWindow(SW_SHOW); GetDlgItem(IDOK)>SetFocus(); } |