【问题标题】:C Windows: Enumerate *all* processes, including those started by the userC Windows:枚举*所有*进程,包括由用户启动的进程
【发布时间】:2020-07-10 20:14:19
【问题描述】:

互联网上有很多关于在 linux 上处理进程的信息,在 Windows 上却不多。

我正在使用 C。我想计算 所有 进程的资源使用情况。不仅仅是系统进程,我想包括那些被用户打开的,例如。

这可以使用 EnumProcesses()、OpenProcess() 和 GetProcessTimes() 来完成。但是,这不包括不是系统进程的进程。

有什么想法吗?

【问题讨论】:

  • 也许这个 C++ 标记的问题可以提供帮助:https://stackoverflow.com/questions/3477097/get-full-running-process-list-visual-c
  • 不幸的是,我不这么认为 :( 它仍然使用 OpenProcess,据我了解,它只能打开系统进程。
  • @roee - 据我了解只能打开系统进程的OpenProcess这是绝对错误的
  • 也许,我会尝试将它用于用户进程。
  • 不过,事实的 EnumProcesses() 仅列出系统进程。

标签: c windows process resources


【解决方案1】:

这可以使用 EnumProcesses()、OpenProcess() 和 GetProcessTimes() 来完成。但是,这不包括不是系统进程的进程。

它仍然使用 OpenProcess,据我了解,它只能打开系统进程。

不过,事实的 EnumProcesses() 仅列出系统进程。

这些都是假的。

CreateToolHelp32Snapshot()EnumProcesses() 都会列出所有正在运行的进程,请确保您以管理员身份运行应用程序以访问所有信息。

OpenProcess() 也适用于所有进程。

【讨论】:

    猜你喜欢
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2022-06-20
    • 2020-05-29
    • 1970-01-01
    • 2011-10-22
    相关资源
    最近更新 更多