扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
update.exe VolleyMail 3.0 http://www.extice.com/update/update.ini |
dlg.m_strSoft = arr.GetAt(0); dlg.m_strVersion = arr.GetAt(1); AfxParseURL( arr.GetAt(2), dwType, dlg.m_strServer, dlg.m_strIniPath, dlg.m_dwPort); |
m_cis.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,5); m_pHttp=m_cis.GetHttpConnection( m_strServer,m_dwPort ); m_lbProduct.AddString(m_strSoft+" "+m_strVersion); |
csf.Open( m_strTempDir+"\\update.ini", CFile::modeCreate|CFile::modeWrite|CFile::typeBinary ); char buf[2048]; int n; while( ( n=pFile->Read( buf,2048 ) ) > 0 ) csf.Write(buf,n); char buf[128]; ::GetPrivateProfileString( m_strSoft, "VERSION", "1.0", buf, sizeof(buf), m_strTempDir+"\\update.ini"); m_strNewVer=buf; if(atof( m_strVersion ) >= atof( buf ) ) //现有版本大于 { m_strStatus = "您现在用的版本已是最新的!"; UpdateData(FALSE); m_buOK.EnableWindow(FALSE); return; } |
DWORD CUpdateDlg::FindAppProcessID() { HANDLE handle=::CreateToolhelp32Snapshot(TH32CS_SNAPALL,0); PROCESSENTRY32 Info; Info.dwSize = sizeof(PROCESSENTRY32); if(::Process32First(handle,&Info)) { do{ CString ss=Info.szExeFile; if(!ss.CompareNoCase(m_strSoft+".exe")) { ::CloseHandle(handle); return Info.th32ProcessID; } } while(::Process32Next(handle,&Info)); ::CloseHandle(handle); } return -1; } |
CStdioFile csf; if( !csf.Open( str+".upg", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary | CFile::shareDenyWrite ) ) {//先为*.upg文件 AfxMessageBox("写文件"+str +"错误!\n文件正在使用中,请先关闭程序!", MB_ICONSTOP); pFile->Close(); return FALSE; } char buf[2048]; DWORD dwRead=0; while((n=pFile->Read(buf,sizeof(buf)))>0) { dwRead+=n; m_prog.SetPos(100*dwRead/dwLen); MSG msg; for(int i=0;i<10;i++) { if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } } csf.Write(buf,n); } pFile->Close(); ... if(::DeleteFile(str)){ ::rename(str+".upg",str); m_strStatus=strFile+"完成更新!"; UpdateData(FALSE); ... |
婵″倹鐏夐幃銊╂姜鐢瓕鎻╅崚鍥╂畱閹厖绨$憴顤廡妫板棗鐓欓張鈧弬棰侀獓閸濅椒绗岄幎鈧張顖欎繆閹垽绱濋柇锝勭疄鐠併垽妲勯懛鎶姐€婄純鎴炲Η閺堫垶鍋栨禒璺虹殺閺勵垱鍋嶉惃鍕付娴f娊鈧柨绶炴稊瀣╃閵嗭拷