Sto cercando di ottenere un nome di processo dal suo pid. L'utente è in esecuzione come amministratore, abilitato al controllo dell'account utente, non elevato.Come ottenere un nome file di processo da pid, se OpenProcess() fallisce con ACCESS_DENIED?
Alcuni processi di sistema, come services.exe
, hanno la sicurezza impostata in modo tale che OpenProcess(PROCESS_QUERY_INFORMATION ...
non riesce con ERROR_ACCESS_DENIED
. Stesso risultato con il diritto di accesso PROCESS_QUERY_LIMITED_INFORMATION
. Tuttavia, posso vedere che Process Explorerpuò almeno elencare tutti questi processi, insieme al loro pid e nome file (quando si esegue come amministratore non elevato).
La mia domanda è, come posso fare lo stesso (ottenere il nome del file da pid), dato che l'amministratore non elevato non può seguire il solito percorso di OpenProcess() + GetProcessImageFileName()?
Grazie Jim, è stato un suggerimento brillante. Se qualcuno ha bisogno di un esempio, ecco un [MSDN uno] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686701%28v=vs.85%29.aspx) – baderman