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

时间:2012-01-16 17:43:37

标签: c# process

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

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

除CPU时间外,一切正常。这是我用来获取CPU信息的代码:

Process[] processes = Process.GetProcesses(machineName);

foreach (Process p in processes)
{
    var cpuTime = p.TotalProcessorTime;
}

但是我收到了这个错误:

远程计算机不支持此功能。

有没有其他方法可以获取此信息并仍然可以将其添加到我的SQL表中?

1 个答案:

答案 0 :(得分:3)

如何使用WMI?

  string computerName="MyPc";
  System.Management.ManagementScope ms = new System.Management.ManagementScope(@"\\" + computerName + @"\root\cimv2");
  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();