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 に対して拒否されたアクセスを返す可能性があることがわかりました。
上記のコードは有効ですか?