C++/MFC如何使用进程控制外部exe程序(打开和关闭)
打开外部exe程序:
//调用ShellExecute函数
HINSTANCE hNewExe =ShellExecute(NULL, _T(“open”), _T(“外部exe程序的路径”),
NULL, NULL, SW_SHOWNORMAL);
if ((DWORD)hNewExe <= 32)
{
AfxMessageBox(_T("return value:%d\r\n"),(DWORD)hNewExe);
}
else
{
AfxMessageBox(_T("successed!\r\n"));
}
使用CrearteProcess()函数会导致窗口卡死,暂未找到好方法。
关闭外部exe程序:
HANDLE hProcessHandle;
ULONG nProcessID;
HWND TheWindow;
TheWindow = ::FindWindow(NULL, _T(“exe的名称”));
::GetWindowThreadProcessId(TheWindow, &nProcessID);
hProcessHandle = ::OpenProcess(PROCESS_TERMINATE, FALSE, nProcessID);
::TerminateProcess(hProcessHandle, 4);
亲测可用。