C#任务管理器CPU使用率问题



我正在尝试创建一个应用程序,该应用程序提取流程信息并将其放入SQL表中。

我正在提取进程名称、PID、CPU时间、内存使用情况、页面和句柄。

除了CPU时间外,一切都很好。这是我用来获取CPU信息的代码:

Process[] processes = Process.GetProcesses(machineName);
foreach (Process p in processes)
{
    var cpuTime = p.TotalProcessorTime;
}

然而,我得到了这个错误:

远程计算机不支持此功能

有没有其他方法可以让我获得这些信息并将其添加到SQL表中?

使用WMI怎么样?

  string computerName="MyPc";
  System.Management.ManagementScope ms = new System.Management.ManagementScope(@"\" + computerName + @"rootcimv2");
  System.Management.SelectQuery sq = new System.Management.SelectQuery("SELECT * FROM Win32_Process");
  System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(ms,sq);
  foreach (System.Management.ManagementObject mo in mos.Get())
  {
    Console.WriteLine(mo["Name"].ToString());
  }
  Console.Read();

最新更新