我正在为 Windows 开发一个简单的进程统计收集库。我正在使用 EnumProcesses()
函数枚举进程,并尝试使用带有 PROCESS_QUERY_INFORMATION 标志的 OpenProcess()
调用打开它们。但是,后一个失败了一堆系统进程。同时,我看到类似的应用程序(sysinternals 工具、任务管理器等)似乎能够检索有关这些进程的信息,甚至不需要管理员权限。我尝试启用 SeDebugPrivilege 权限,但只有当我以管理员身份运行我的程序时它才有帮助——而且我仍然无法打开空闲进程、系统进程和 audiodg 进程(我希望能够检索它们信息的一致性)。
所以问题是:如何获取有关所有 进程的信息(我看到它是由第 3 方应用程序完成的,但我不知道如何获取)?是否可以在没有管理员权限的情况下执行此操作?
最佳答案
你熟悉CreateToolhelp32Snapshot吗?还有这个功能Process32First .
我找到了这个 code-project前段时间用的时候对我帮助很大...
关于c - 在 C 中检索 Windows 进程的完整列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157302/