我正在尝试使用以下代码终止一组进程,但只有少数进程被终止,所以请建议我更好的方法来终止所有进程。
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;
}
}
答案 0 :(得分:0)
你的代码应该可以正常工作,正如你所说的那样,某些进程没有被终止,因为TerminateProcess()是异步调用,它在启动TerminateProcess()后立即返回。你可能会在返回后立即检查。要确定这些进程是否成功终止,您可以在进程的句柄上使用WaitForSingleObject()。欲了解更多信息,请阅读https://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=vs.85).aspx