我正在尝试使用下面的代码终止一组进程,但只有少数进程被终止,因此请建议我更好的方法来终止所有进程。
hProc = OpenProcess( PROCESS_TERMINATE, FALSE, processID );
if ( hProc )
{
if(WaitForSingleObject(hProc, INFINITE)!=WAIT_OBJECT_0)
{
dwRet=(TerminateProcess(hProc, 0)?TA_SUCCESS_KILL:TA_FAILED);
}
else
{
dwRet = TA_SUCCESS_CLEAN;
}
}
最佳答案
您的代码应该绝对有效,正如您所说,某些进程没有被终止,这可能是因为 TerminateProcess() 是异步调用,它在启动 TerminateProcess() 后立即返回。您可能会在其返回后立即进行检查。要确定这些进程是否成功终止,您可以在进程句柄上使用 WaitForSingleObject() 。欲了解更多信息,请阅读https://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=vs.85).aspx
关于c - 如何使用 TerminateProcess 终止进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28103750/