有三个应用程序main.exe(C++),one.exe(C++)和two.exe(.net)。如何从另一个应用程序终止一个应用程序
我想从main.exe中终止one.exe和two.exe,如果它们正在运行。
有三个应用程序main.exe(C++),one.exe(C++)和two.exe(.net)。如何从另一个应用程序终止一个应用程序
我想从main.exe中终止one.exe和two.exe,如果它们正在运行。
如果你有进程ID为one.exe和two.exe,你可以获得进程句柄并使用TerminateProcess
函数。代码示例如下:
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId);
if (hProcess == NULL)
{
return;
}
UINT uExitCode;
BOOL result = TerminateProcess(hProcess, uExitCode);
CloseHandle(hProcess);
如果是GUI应用程序,则可以向其他应用程序发送WM_CLOSE消息。
或者如果你想杀死另一个进程,那么使用TerminateProcess()函数。
[如何在C++(Win32)中有效杀死进程?](http://stackoverflow.com/questions/1916574/how-to-effectively-kill-a-process-in-c-win32 ) –
告诉我们更多关于这些项目的信息。正确的答案不一定合适。 'WM_CLOSE'只能用于GUI程序,即使发送'WM_CLOSE'也不会真的终止程序,而只是触发一个“你确定吗?”对话。 'TerminateProcess'是相当粗糙的,可能会导致各种问题,想象你的程序正在更新数据库的过程中,它突然被杀死;这可能会使数据库处于中间状态甚至损坏数据库。你有“one.exe”和“two.exe”的源代码吗? –