我正在使用 ShellExecuteEx
来启动一个应用程序 . 成功启动后,我正在阅读 TShellExecuteInfo.hProcess
以获取启动过程的句柄 .
我想定期检查我的应用程序启动的进程是否仍在运行 . 两个或多个具有相同名称的进程可以同时运行,我想确保我的应用程序正在检查正确的进程 .
我希望能够在从Windows 2000到Windows上的Windows系统上执行此操作 .
我知道有WinAPI函数 GetProcessId
这正是我想要的,但它不支持Windows 2000 .
谢谢您的回答 .
1 回答
在该句柄上调用WaitForSingleObject,并使用零参数 . 如果进程仍在运行,则该函数将返回
Wait_Timeout
;如果进程已终止,则它将返回Wait_Object_0
(因为进程终止会导致其句柄发出信号 . )如果您想知道进程的退出状态是什么,请调用GetExitCodeProcess .