资源简介
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个文件信息
相关资源
- 求解一元四次方程(vbvcc#excelhtml)-
- 绘制任意斜率的直线段
- 黄维通Visual C++面向对象与可视化程序
- C++builder XE2 唯一有用的破解
- 学生信息管理系统C语言课程设计)
- 书店管理设计与实现c++
- 基于C++语言编写的宠物管理系统(V
- 快译通(C语言)
- vc6鼠标低级钩子源码 直接编译运行即
- Microsoft vc++6.0代码提示插件
- C++轨迹优化软件PSOPT使用手册
- C++反编译工具
- matlab下的基于高斯混合模型的说话人
- Borland Turbo C++ 1.01
- 从DEM数据中提取等高线——MFC编写
- mfc编写的通讯录小程序
- MFC Csocket实现点对点文件传输
- C语言大作业
- MFC VC6.0 简单贪吃蛇
- Visual C++数字图像识别技术典型案例
- Opencv+VC6.0实现摄像头视频的监控
- VC6通过dll读写excel文件,不需要安装
- VC6的MFC文件
- VC6基于对话框的BMP灰度图片显示和轮
- MFC类库详解中文版(chm)
- Visual_C++程序设计与应用教程课后答案
- C++ 排课程序源代码
- VC++实现动态创建对话框非常好的C++源
- VC++开发的斗地主的网络游戏源码
- vc 最短路径演示程序源代码
评论
共有 条评论