您的位置:首页 > 其它

将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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐