【问题标题】:Get information about running processes获取有关正在运行的进程的信息
【发布时间】:2023-11-02 02:10:02
【问题描述】:

我需要在一些机器上启动一个监视器来找出哪些进程正在锁定它。 所以我想要的是记录您可以在任务管理器上找到的关于每个执行进程的相同信息。
到目前为止,我可以使用 C# Process 类获得处理器时间信息,但我也想知道它使用了多少内存。查看给定的应用程序或进程是否“无响应”也非常有用。
关于如何获取所有这些信息的任何想法。 (可能 System.Events 也有帮助?)

【问题讨论】:

    标签: c# winapi multithreading


    【解决方案1】:

    我同意 Nick 的观点,WMI 是您获取详细流程信息的最佳选择。

    但还有一些您可能感兴趣的东西,Powershell(随 Windows 7 提供,并且可用于其他操作系统的下载)不仅支持 WMI,而且将 WMI 工件呈现为对象,您可以随后通过管道运行 linq 查询到其他 powershell 调用等中,它也是完全可编程和/或可编写脚本的,它是非常酷的技术,非常值得学习......但是......这是一个合理的时间投入来学习。

    Power shell Msdn site

    【讨论】:

    • 感谢 Powershell 的建议。我以前见过它,它可能真的很强大。 WMI实际上是我最好的选择。所以让我们给你投票,但尼克得到了支票。谢谢!!!!
    【解决方案2】:

    我认为最好的办法是使用 WMI 并获取 Win32_Process 类的所有实例。您可以使用 ManagementObjectSearcher 获取所有 Win32_Process 实例。

    【讨论】:

      最近更新 更多