首页 文章

如何在具有句柄时检查给定进程是否正在运行

提问于
浏览
6

我正在使用 ShellExecuteEx 来启动一个应用程序 . 成功启动后,我正在阅读 TShellExecuteInfo.hProcess 以获取启动过程的句柄 .

我想定期检查我的应用程序启动的进程是否仍在运行 . 两个或多个具有相同名称的进程可以同时运行,我想确保我的应用程序正在检查正确的进程 .

我希望能够在从Windows 2000到Windows上的Windows系统上执行此操作 .

我知道有WinAPI函数 GetProcessId 这正是我想要的,但它不支持Windows 2000 .

谢谢您的回答 .

1 回答

  • 14

    在该句柄上调用WaitForSingleObject,并使用零参数 . 如果进程仍在运行,则该函数将返回 Wait_Timeout ;如果进程已终止,则它将返回 Wait_Object_0 (因为进程终止会导致其句柄发出信号 . )

    如果您想知道进程的退出状态是什么,请调用GetExitCodeProcess .

相关问题