3

当我使用 shell 函数打开它时,我注意到一个应用程序句柄。然后我稍后使用该句柄关闭应用程序。但是,用户也可以自己关闭该其他应用程序。然后该句柄是否可以被 Windows 重用,以便在我使用该句柄时关闭另一个进程。如果有可能,有可能吗?

4

2 回答 2

5

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

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

于 2009-11-29T17:20:26.863 回答
3

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

WaitForSingleObject(hProcess, INFINITE);

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

于 2009-11-29T14:17:33.897 回答