【发布时间】:2012-10-05 16:29:51
【问题描述】:
在这里使用WaitForSingleObject 与不使用相比有什么好处?第一个代码块来自previous answer。第二块是我的做法。
BOOL IsProcessRunning(DWORD pid)
{
HANDLE process = OpenProcess(SYNCHRONIZE, FALSE, pid);
DWORD ret = WaitForSingleObject(process, 0);
CloseHandle(process);
return (ret == WAIT_TIMEOUT);
}
对
BOOL IsProcessRunning(DWORD pid)
{
HANDLE process = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid);
const bool exists = (process != NULL);
CloseHandle(process);
return exists;
}
似乎使用SYNCHRONIZE 需要更高的权限,我只想检查当前用户的PID。
【问题讨论】:
-
为您添加一些比较工作 - 您可能需要比较
GetExitCodeProcess和WaitForSingleObject以确定流程完成状态。