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

时间:2012-04-14 20:58:11

标签: c windows winapi windows-7

我正在为Windows开发一个简单的流程统计信息收集库。我正在使用EnumProcesses()函数枚举进程,并尝试使用PROCESS_QUERY_INFORMATION标记调用OpenProcess()来打开它们。但是后者却因一堆系统进程而失败。与此同时,我发现类似的应用程序(sysinternals工具,任务管理器等)似乎能够检索有关这些进程的信息,即使不需要管理员权限。我尝试启用SeDebugPrivilege权限,但只有当我以管理员身份运行程序时它才有用 - 而且,我无法打开空闲进程,系统进程和audiodg进程(我希望能够检索他们的信息的一致性。)

所以问题是:我怎样才能获得有关所有进程的信息(我看到它由第三方应用程序完成,但我不知道如何)?没有管理员权限是否可以这样做?

1 个答案:

答案 0 :(得分:2)

您是否熟悉CreateToolhelp32Snapshot以及此功能Process32First

我发现了这个code-project我刚刚使用它的时候它给了我很多帮助......