简体   繁体   English

如何使用TerminateProcess终止进程

[英]how to terminate process using TerminateProcess

I am trying to terminate a set of processes using below code but only few are getting terminated so please suggest me better way to terminate all the processes. 我正在尝试使用下面的代码终止一组进程,但是只有少数几个正在终止,所以请向我建议终止所有进程的更好方法。

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;
    }
}

Your code should work definitely, As you are saying that some process are not getting terminated this might of because TerminateProcess() is asynchronous call, it return immediately after initiating TerminateProcess(). 您的代码肯定可以正常工作,正如您所说的那样,由于TerminateProcess()是异步调用,因此某些进程不会被终止,因此它会在启动TerminateProcess()之后立即返回。 And you might be checking immediately after its return. 您可能会在返回后立即检查。 To be sure whether these processes are successfully terminated or not you can use WaitForSingleObject() on handle of your process. 要确定这些进程是否成功终止,可以在进程的句柄上使用WaitForSingleObject()。 for more info read https://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=vs.85).aspx 有关更多信息,请阅读https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms686714(v=vs.85).aspx

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM