有三個應用程序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」的源代碼嗎? –