将EXE作为资源,然后在释放到磁盘上并运行该exe程序
2015-09-09 17:15
405 查看
[cpp] view plaincopy
// 将exe作为资源加入,然后再释放出来,并运行
try
{
HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(IDR_EXE1), _T("EXE"));
if(NULL == hRes)
return ;
DWORD dwSize = SizeofResource(NULL, hRes);
if(0 == dwSize)
return ;
HGLOBAL hGlobal = LoadResource(NULL, hRes);
if(NULL == hGlobal)
return ;
LPVOID lp = LockResource(hGlobal);
if(NULL == lp)
return ;
CFile file;
TCHAR szApp[MAX_PATH] = {_T("F://11.exe")};
file.Open(szApp, CFile::modeCreate | CFile::modeWrite);
file.WriteHuge(lp, dwSize);
file.Close();
FreeResource (hGlobal);
if(PathFileExists(szApp))
{
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi = {0};
if(CreateProcess(NULL, szApp, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
}
}
catch (CException* e)
{
e->ReportError();
e->Delete();
}
// 将exe作为资源加入,然后再释放出来,并运行
try
{
HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(IDR_EXE1), _T("EXE"));
if(NULL == hRes)
return ;
DWORD dwSize = SizeofResource(NULL, hRes);
if(0 == dwSize)
return ;
HGLOBAL hGlobal = LoadResource(NULL, hRes);
if(NULL == hGlobal)
return ;
LPVOID lp = LockResource(hGlobal);
if(NULL == lp)
return ;
CFile file;
TCHAR szApp[MAX_PATH] = {_T("F://11.exe")};
file.Open(szApp, CFile::modeCreate | CFile::modeWrite);
file.WriteHuge(lp, dwSize);
file.Close();
FreeResource (hGlobal);
if(PathFileExists(szApp))
{
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi = {0};
if(CreateProcess(NULL, szApp, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
}
}
catch (CException* e)
{
e->ReportError();
e->Delete();
}
相关文章推荐
- winform 菜单激发窗体切换做法
- [转]Android 中Parcelable的作用
- sublime快捷键
- iOS开发有关app启动时的动态页面展示(非启动页面)
- Auto Create Editable Copy Font(Unity3D开发之二十二)
- 简单说说Java SE、Java EE、Java ME三者之间的区别
- What stuff has done with Magento
- Auto Create Editable Copy Font(Unity3D开发之二十二)
- 为什么Web 设计会“死”?
- 第二周 - Elementary Programming
- java generic研究分析
- 【CCF】集合竞价
- Maven入门(一)——在Windows上安装Maven
- PHP&正则表达式
- 简析递归思想及其典型算法
- C++用法的学习心得
- 反射机制
- Java中equals()方法的重写
- 如何将.so文件添加到SVN
- 2015-9-9所遇所见