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

标签 c windows winapi windows-7

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

所以问题是:如何获取有关所有 进程的信息(我看到它是由第 3 方应用程序完成的,但我不知道如何获取)?是否可以在没有管理员权限的情况下执行此操作?

最佳答案

你熟悉CreateToolhelp32Snapshot吗?还有这个功能Process32First .

我找到了这个 code-project前段时间用的时候对我帮助很大...

关于c - 在 C 中检索 Windows 进程的完整列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157302/

相关文章:

c - 可以通过将指针更改为更高的索引来缩小 C 中的数组吗?

C语言,如何将数字转换为字符串?

c - 小于整数的素数

c# - 在 Windows 10 上隐藏和显示任务栏

linux - Kali Linux 和 Windows 位于 C 盘同一分区

c - 如何在不安装 msi 的情况下从 msi 文件获取产品版本?

c++ - 单缓冲区阻塞WSASend可以传递部分数据吗?

c++ - 如何在 Windows 上使用 C++ 获取设备的父级?

windows - 进程.exit(0) : output disappears?

c++ - 使用 C++ 将 STDIN 数据读入控制台应用程序的最快方法是什么