将EXE作为资源,然后在释放到磁盘上并运行该exe程序(使用了FindResource,LoadResource,然后用CFile写成一个文件)
2016-10-27 00:19
477 查看
[cpp] view plain copy
// 将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();
}
http://blog.csdn.net/visualeleven/article/details/6035381
// 将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();
}
http://blog.csdn.net/visualeleven/article/details/6035381
相关文章推荐
- 将EXE作为资源,然后在释放到磁盘上并运行该exe程序
- 将EXE作为资源,然后在释放到磁盘上并运行该exe程序
- 将EXE作为资源,然后在释放到磁盘上并运行该exe程序
- 以不同用户身份运行程序,/savecred只需要输入一次密码(GetTokenByName取得EXPLORER.EXE的令牌,然后调用CreateProcessAsUser,而且使用LoadUserProfile解决另存文件的问题)good
- [木马]不释放资源到本地文件系统,直接运行其内嵌exe程序 卡巴竟然报毒,MSE正常
- 如何将自己的文件作为资源文件放入VC工程中?如何在运行时,从EXE文件中提取(释放)出这个文件?
- 将文件作为资源放入VC工程中?在运行时从EXE文件中提取(释放)出这个文件?
- 将文件作为资源放入VC工程中,在运行时从EXE文件中提取(释放)出这个文件。
- 如何把一个现成的exe文件合并到合并到我的程序里?运行时再释放出来?
- 将exe作为资源加入,然后再释放出来,并运行
- 使用.bat文件运行Java程序的一个示例
- (转)使用srvany.exe将任何程序作为Windows服务运行
- 从VB资源文件中释放出的EXE文件为何运行不了?
- 一个简单java小程序打包成EXE运行文件
- 为什么一个程序在vs2005中,按F5运行,和直接运行exe文件结果不一样
- 怎么控制程序只运行一个实例(使exe文件不被重复打开)
- Delphi 在内存中运行EXE程序,从资源文件中加载
- vc中将一个独立的dll(exe),作为资源加入资源文件中
- 怎样把一个写好的程序,打包成一个文件。.exe的,这样我一点击就可以运行,好像网上说这个是绿色软件
- 磁盘上的文件系统结构已损坏,不能使用。 请在卷 数据库 上运行 chkdsk 实用程序。