c - 如何使用 TerminateProcess 终止进程

标签 c windows winapi

我正在尝试使用下面的代码终止一组进程,但只有少数进程被终止,因此请建议我更好的方法来终止所有进程。

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/

相关文章:

c - 如何在R中查看编译的C代码的源代码

linux - 点网核心 : cross platform version of GetInvalidFileNameChars?

Windows Azure - 部署到角色内的实例子集

multithreading - 如何使我的应用程序在多个内核上运行?

c - 如何使用fopen打开当前目录中文件夹内的文件

c - 阿尔萨 API : how to use mmap in c?

winapi - SHLoadIndirectString() 如何在内部工作?

c++ - 如何从 HMENU 获取菜单 ID?

c - 在无限棋盘上,骑士从 xb、yb 到 xe、ye 可以走的路线数

java - 从 Java 调用时隐藏 BAT 文件窗口