我在 Windows 平台上运行以下代码。目的是了解特定进程 ID 是否引用现有进程。
BOOL bProcessExists = FALSE;
HANDLE hProcHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcID);
if(hProcHandle)
{
bProcessExists = TRUE;
::CloseHandle(hProcHandle);
}
else
{
if(::GetLastError() == ERROR_ACCESS_DENIED)
{
bProcessExists = TRUE;
}
}
运行上述代码的进程没有运行提升,我发现 OpenProcess 可以返回拒绝访问某些进程 ID。
上面的代码有效吗?