我需要检查具有给定HANDLE的进程是否仍在运行,我尝试使用以下代码执行此操作,但它始终在第二次返回false时返回,即使进程正在运行 .
bool isProcessRunning(HANDLE process)
{
if(process == INVALID_HANDLE_VALUE)return false;
DWORD exitCode;
if(GetExitCodeProcess(process, &exitCode) != 0)
return false;//always returns here
return GetLastError() == STILL_ACTIVE;//still running
}
4 回答
您可以使用测试过程寿命
http://msdn.microsoft.com/en-us/library/ms683189%28VS.85%29.aspx
我知道这有点晚了,但是如果你想要你想要的结果,你的代码应该是这样的 .
如果您只有进程ID(PID),则此代码段将起作用(无错误检查):
您可以使用
EnumProcesses()
来使所有进程在Windows上运行 . 就像是: