我一直在搜索 Win32 API C++ 函数TerminateProcess()的示例,但找不到任何示例。
我一般对 Win32 API 不是很熟悉,所以我想问一下这里比我更好的人是否可以给我举个例子,
- 通过终止进程所需的 PID 检索进程句柄,然后使用它调用 TerminateProcess。
如果您不熟悉 C++,那么 C# 等价物也会有所帮助。
我一直在搜索 Win32 API C++ 函数TerminateProcess()的示例,但找不到任何示例。
我一般对 Win32 API 不是很熟悉,所以我想问一下这里比我更好的人是否可以给我举个例子,
如果您不熟悉 C++,那么 C# 等价物也会有所帮助。
要回答原始问题,为了通过 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 不允许其目标清理并以有效状态退出。使用前请三思。