WinExec("程序路径",SW_SHOW)
关闭自己用exit(0)
关闭别的程序,首先获得程序的PID,然后
int TerminateProcessFromId(DWORD dwId) //关闭进程
{
BOOL bRet=FALSE
HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwId)
if(hProcess!=NULL)
{
bRet=::TerminateProcess(hProcess,0)
}
::CloseHandle(hProcess)
if(bRet)
printf("%d 进程结束成谈虚搜功......\n\n\n\n",dwId)
else
printf("%d 进含历程结束失败......\n\n\n\誉老n",dwId)
return 0
}
只有一个问题,那就是如何在程序里去执行另一个exe的问题。而知州搏道怎么执行册悄祥一运宏个exe了,只要把代码放在button被点击的消息处理函数里就可以了。执行exe的方式
ShellExecute
或者
Exec
可以。假设mfc.exe是你最终发布的可执行文件。a.exe是你要包含的可执行文件。实现的思路是:
把a.exe以二进卖世制资源的形式放到mfc.exe的RC资源中,
运行时从mfc.exe中释放出a.exe并用ShellExecute运行。
mfc.exe该如何编写:
1.a.exe以二进制资源的形核陪式放到mfc.exe的RC资源中
2.使用FindResource获取资源句柄
3.使用SizeofResource获取该资源(即a.exe)的大小
4.使用LoadResource将该资源加载到内存缓冲区中
5.构造CFile对象,将缓冲区中数据写入到系统临时文件夹。
6.这样在系统临时文件夹中就会生成a.exe
7.使用ShellExecute运行a.exe
这样改配蠢最终只发布mfc.exe一个可执行文件,a.exe已经包含在里面了,运行时会释放出来再ShellExecute
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)