熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

讓自己學會寫的一個在線升級的程序

2013-11-23 18:47:57  來源: Java核心技術 

  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){
  CString inFile;
  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();
  }
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25747.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.