我一直在搜索Win32 API C ++函数TerminateProcess()的示例,但找不到任何示例。
我对Win32 API一般都不熟悉,所以我想问一下这里比我更好的人能给我看一个例子,
如果你不熟悉C ++,那么C#等价物也会有所帮助。
答案 0 :(得分:18)
要回答原始问题,要通过其PID检索进程句柄并调用TerminateProcess,您需要以下代码:
BOOL TerminateProcessEx(DWORD dwProcessId, UINT uExitCode)
{
DWORD dwDesiredAccess = PROCESS_TERMINATE;
BOOL bInheritHandle = FALSE;
HANDLE hProcess = OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId);
if (hProcess == NULL)
return FALSE;
BOOL result = TerminateProcess(hProcess, uExitCode);
CloseHandle(hProcess);
return result;
}
请记住,TerminateProcess不允许其目标清理并以有效状态退出。使用前请三思。