在C中检索Windows进程的完整列表

我正在为Windows开发一个简单的进程统计信息收集库。 我使用EnumProcesses()函数枚举进程,并尝试使用PROCESS_QUERY_INFORMATION标志调用OpenProcess()来打开它们。 尽pipe如此,后一个失败了一堆系统进程。 同时,我看到类似的应用程序(sysinternals工具,任务pipe理器等)似乎能够检索有关这些进程的信息,即使不需要pipe理员权限。 我尝试启用SeDebugPrivilege特权,但它确实有帮助,只有当我作为pipe理员运行我的程序 – 仍然,我无法打开空闲进程,系统进程和audiodg进程(我想能够检索他们信息的一致性也是如此)。

所以问题是:如何获得有关所有stream程的信息(我看到它是由第三方应用程序完成的,但是我不明白)? 有没有pipe理员权限可以做到这一点?

你熟悉CreateToolhelp32Snapshot和这个函数以及Process32First 。

我找到了这个代码项目当我用它时,它帮了我很多…