Pobieranie pełnej listy procesów Windows w C
Opracowuję prostą bibliotekę gromadzenia statystyk procesu dla systemu Windows. Wyliczam procesy za pomocąEnumProcesses()
funkcja i próbuję je otworzyćOpenProcess()
wywołanie z flagą PROCESS_QUERY_INFORMATION. Ten ostatni jednak nie działa na kilka procesów systemowych. Jednocześnie widzę, że podobne aplikacje (narzędzia sysinternals, menedżer zadań itp.) Wydają się być w stanie pobierać informacje o tych procesach nawet bez konieczności posiadania uprawnień administratora. Próbowałem włączyć uprawnienie SeDebugPrivilege, ale to pomogło tylko wtedy, gdy uruchomiłem mój program jako Administrator - i nadal nie mogłem otworzyć procesu bezczynności, procesu System i procesu audiodg (chciałbym móc odzyskać ich informacje dla spójności również).
Więc pytanie brzmi: jak mogę uzyskać informacje owszystko procesy (widzę to zrobione przez aplikacje innych firm, ale nie wiem, jak to zrobić)? Czy można to zrobić bez uprawnień administratora?