流程句柄重复使用的频率

时间:2009-11-29 12:46:22

标签: windows shell hwnd

我注意到当我使用shell函数打开它时应用程序处理。 然后我使用该句柄稍后关闭应用程序。 但是,用户也可以自己关闭其他应用程序。 那个句柄可以被windows重用,这样当我使用该句柄时,我会关闭一个不同的进程。 如果有可能吗?

2 个答案:

答案 0 :(得分:5)

不,你不必担心。例如,OpenProcess,ShellExecuteEx()或CreateProcess返回的句柄使进程对象保持活动状态。这就是在进程终止后调用GetExitCodeProcess()来检索退出代码的方法。

在对象的最后一个句柄关闭之前,对象不会被释放。与此线程中给出的早期建议相反,调用CloseHandle()或者您将发生泄漏非常重要。

答案 1 :(得分:3)

您可以等待进程句柄以确定何时退出。

WaitForSingleObject(hProcess,INFINITE);

一旦返回,您就知道该进程已退出,您无需关闭它。