如何判断使用CreateProcess启动的进程是否仍在运行?

Car*_*bon 3 c++ windows winapi

如果我已经创建了一个流程CreateProcess(),我将如何确定它是否仍在运行?我知道我需要使用,pi.hProcess但我不知道如何,谷歌并没有真正给我有意义的提示.

PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
bool got_it=CreateProcess(NULL, CA2T(launchString.c_str()), NULL, NULL, false, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 7

您可以使用任何标准的等待功能,比如WaitForSingleObject(),例如:

switch (WaitForSingleObject(pi.hProcess, 0))
{
    case WAIT_OBJECT_0:
        // process has terminated...
        break;

    case WAIT_TIMEOUT:
        // process is still running...
        break;
}
Run Code Online (Sandbox Code Playgroud)