2012-04-14 16 views
6

Sto sviluppando una libreria di raccolta di statistiche di processo semplice per Windows. Sto enumerando i processi con la funzione EnumProcesses() e provo ad aprirli con la chiamata OpenProcess() con il flag PROCESS_QUERY_INFORMATION. Quest'ultimo non riesce per un sacco di processi di sistema, però. Allo stesso tempo, vedo che applicazioni simili (strumenti sysinternals, task manager, ecc.) Sembrano essere in grado di recuperare informazioni su questi processi anche senza richiedere i privilegi di amministratore. Ho provato ad abilitare il privilegio SeDebugPrivilege, ma è stato d'aiuto solo quando ho eseguito il mio programma come amministratore - e ancora, non ho potuto aprire il processo di inattività, il processo di sistema e il processo di audiodg (mi piacerebbe poter recuperare il loro informazioni per coerenza anche).Recupero di un elenco completo di processi Windows in C

Quindi la domanda è: come posso ottenere informazioni su tutti i i processi (lo vedo fatto da applicazioni di terze parti, ma non vedo come)? È possibile farlo senza i privilegi di amministratore?

risposta

2

Hai familiarità con CreateToolhelp32Snapshot e questa funzione è anche Process32First.

Ho trovato questo code-project Quando ho usato qualche tempo fa che mi ha aiutato molto ...

+0

Ohh si scriveva Windows 7, non so se funziona in cima a win7 per utente senza privilegi fammi sapere se funziona – 0x90

+1

Questo ha funzionato. Grazie! –

Problemi correlati