資源簡介
vc++ c++ c 軟件自動升級程序源代碼 在線自動升級功能 自動升級 源代碼
對話框自動升級程序,自動下載并安裝,VS2003程序

代碼片段和文件信息
//?AutoUpdate.cpp?:?定義應用程序的類行為。
//
#include?“stdafx.h“
#include?“AutoUpdate.h“
#include?“AutoUpdateDlg.h“
#include?“.\autoupdate.h“
#include?
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#endif
//?CAutoUpdateApp
BEGIN_MESSAGE_MAP(CAutoUpdateApp?CWinApp)
ON_COMMAND(ID_HELP?CWinApp::onhelp)
END_MESSAGE_MAP()
//?CAutoUpdateApp?構造
CAutoUpdateApp::CAutoUpdateApp()
{
//?TODO:?在此處添加構造代碼,
//?將所有重要的初始化放置在?InitInstance?中
}
//?唯一的一個?CAutoUpdateApp?對象
CAutoUpdateApp?theApp;
//?CAutoUpdateApp?初始化
extern?CString?GetModuleDirectory();
BOOL?CAutoUpdateApp::InitInstance()
{
//?如果一個運行在?Windows?XP?上的應用程序清單指定要
//?使用?ComCtl32.dll?版本?6?或更高版本來啟用可視化方式,
//則需要?InitCommonControls()。否則,將無法創建窗口。
InitCommonControls();
CWinApp::InitInstance();
AfxEnableControlContainer();
//?標準初始化
//?如果未使用這些功能并希望減小
//?最終可執行文件的大小,則應移除下列
//?不需要的特定初始化例程
//?更改用于存儲設置的注冊表項
//?TODO:?應適當修改該字符串,
//?例如修改為公司或組織名
SetRegistryKey(_T(“應用程序向導生成的本地應用程序“));
CString?csServerURL?=?GetCommandLine();
{
int?iIndex?=?csServerURL.Find(“?“);
if(iIndex?>=?0)
{
csServerURL?=?csServerURL.Mid(iIndex+1);?
}
}
CAutoUpdateDlg?dlg;
dlg.m_csDownloadURL?=?csServerURL;
m_pMainWnd?=?&dlg;
INT_PTR?nResponse?=?dlg.DoModal();
if?(nResponse?==?IDOK)
{
//?TODO:?在此放置處理何時用“確定”來關閉
//對話框的代碼
}
else?if?(nResponse?==?IDCANCEL)
{
//?TODO:?在此放置處理何時用“取消”來關閉
//對話框的代碼
}
if(dlg.m_bFileOK)??//表示文件下載下來了
{
CString?csFile?=?GetModuleDirectory()+“YLBSetup.exe“;
StartInstall(csFile);
}
//?由于對話框已關閉,所以將返回?FALSE?以便退出應用程序,
//?而不是啟動應用程序的消息泵。
return?FALSE;
}
void?CAutoUpdateApp::StartInstall(LPCSTR?lpFileName)
{
STARTUPINFO?si;
PROCESS_INFORMATION?pi;
ZeroMemory(?&si?sizeof(si)?);
si.cb?=?sizeof(si);
ZeroMemory(?&pi?sizeof(pi)?);
char?temp?=?‘\“‘;
CString?strCmdLine;
strCmdLine?=?CString(temp)?+?lpFileName?+?CString(temp);
char*?p_CmdLine;
p_CmdLine=strCmdLine.GetBuffer(strCmdLine.GetLength());
if(?!CreateProcess(?NULL?//?No?module?name?(use?command?line).?
p_CmdLine ??//?Command?line.?
NULL?????????????//?Process?handle?not?inheritable.?
NULL?????????????//?Thread?handle?not?inheritable.?
FALSE????????????//?Set?handle?inheritance?to?FALSE.?
0????????????????//?No?creation?flags.?
NULL?????????????//?Use?parent‘s?environment?block.?
NULL?????????????//?Use?parent‘s?starting?directory.?
&si??????????????//?Pointer?to?STARTUPINFO?structure.
&pi?)?????????????//?Pointer?to?PROCESS_INFORMATION?structure.
)?
{
//AfxMessageBox(?“CreateProcess?failed.“?);
return;
}
//?Wait?until?child?process?exits.
WaitForSingleobject(?pi.hProcess?INFINITE);
//?Close?process?and?thread?handles.?
CloseHandle(?pi.hProcess?);
CloseHandle(?pi.hThread?);
return;
}
void?CAutoUpdateApp::WaitForProcessOK(LPCSTR?lpProcName)
{
HANDLE?hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS0);
PROCESSENTRY32?processInf
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????42228??2010-07-19?16:31??AutoUpdate\AutoUpdate.aps
?????文件???????3658??2010-07-19?13:20??AutoUpdate\AutoUpdate.cpp
?????文件????????555??2006-06-24?14:06??AutoUpdate\AutoUpdate.h
?????文件??????84992??2010-07-21?09:49??AutoUpdate\AutoUpdate.ncb
?????文件???????4154??2006-07-12?22:08??AutoUpdate\AutoUpdate.rc
?????文件????????909??2010-07-15?15:35??AutoUpdate\AutoUpdate.sln
????..A..H.?????16384??2010-07-21?09:49??AutoUpdate\AutoUpdate.suo
?????文件???????4990??2006-07-12?22:07??AutoUpdate\AutoUpdate.vcproj
?????文件???????5015??2010-07-20?15:33??AutoUpdate\AutoUpdateDlg.cpp
?????文件???????1130??2006-06-24?14:06??AutoUpdate\AutoUpdateDlg.h
?????文件?????155648??2010-07-20?16:04??AutoUpdate\Debug\AutoUpdate.exe
?????文件????1245816??2010-07-20?16:04??AutoUpdate\Debug\AutoUpdate.ilk
?????文件??????35700??2010-07-19?13:24??AutoUpdate\Debug\AutoUpdate.obj
?????文件????9764864??2010-07-15?15:06??AutoUpdate\Debug\AutoUpdate.pch
?????文件????2944000??2010-07-20?16:04??AutoUpdate\Debug\AutoUpdate.pdb
?????文件??????23184??2010-07-15?15:06??AutoUpdate\Debug\AutoUpdate.res
?????文件??????50111??2010-07-20?16:04??AutoUpdate\Debug\AutoUpdateDlg.obj
?????文件????????816??2010-07-21?08:55??AutoUpdate\Debug\BuildLog.htm
?????文件??????17939??2010-07-15?15:06??AutoUpdate\Debug\MsgDialog.obj
?????文件?????222555??2010-07-15?15:06??AutoUpdate\Debug\stdafx.obj
?????文件?????232448??2010-07-20?16:04??AutoUpdate\Debug\vc70.idb
?????文件?????552960??2010-07-20?16:04??AutoUpdate\Debug\vc70.pdb
?????文件??????85856??2010-07-20?18:08??AutoUpdate\Debug\YLBSetup.exe
?????文件????????839??2006-07-12?22:09??AutoUpdate\MsgDialog.cpp
?????文件????????445??2006-07-12?22:09??AutoUpdate\MsgDialog.h
?????文件???????2726??2006-06-24?14:06??AutoUpdate\ReadMe.txt
?????文件??????21630??2006-06-24?14:06??AutoUpdate\res\AutoUpdate.ico
?????文件????????699??2006-06-24?14:06??AutoUpdate\res\AutoUpdate.manifest
?????文件????????366??2006-06-24?14:06??AutoUpdate\res\AutoUpdate.rc2
?????文件????????214??2006-07-12?22:07??AutoUpdate\res\BKImage.bmp
............此處省略10個文件信息
評論
共有 條評論