资源简介
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个文件信息
相关资源
- GD32通过规则组寄存器 DMA获取多组AD
- 基于MFC的TCP调试助手源码95706
- 国际象棋的qt源代码
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- 基于mfc的多线程文件传输
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 移木块游戏,可以自编自玩,vc6.0编写
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- C++纯文字DOS超小RPG游戏
- 个人日常财务管理系统(C语言)
- MFC数字钟(基于VC6.0)
川公网安备 51152502000135号
评论
共有 条评论