工作环境:c ++,Windows
我想存储所有pid(而不是进程名称),然后在我想杀死时以编程方式杀死进程。
我知道我可以使用system ("taskkill /pid xxxx")
杀死一个进程,但是我想知道更好/最好的pid杀死一个进程的方法。
杀死进程的最佳方法是什么?为什么?
答案 0 :(得分:2)
幸运的是,一旦拥有PID,将其杀死很容易。
OpenProcess
以从PID中获取进程句柄
PROCESS_TERMINATE
权限。TerminateProcess
终止进程答案 1 :(得分:1)
您可以使用OpenProcess()和TerminateProcess()终止进程。该代码将如下所示:
HANDLE handle = OpenProcess(PROCESS_TERMINATE, FALSE, ProcessID);
if (NULL != handle) {
TerminateProcess(handle, 0);
CloseHandle(handle);
}
为了方便使用system("taskkill /pid xxxx")
,我邀请您阅读this post。已经给出了大量答案,以解释为什么不使用此表达式。
慢:它必须跳过许多不必要的Windows代码和单独的程序才能进行简单的操作。
不可移植:取决于暂停程序。
样式不好:仅在确实必要时进行系统调用