我正在尝试创建一个应用程序来提取进程信息并将其放入SQL表中。
我正在提取进程名称,PID,CPU时间,内存使用情况,页面和句柄。
除CPU时间外,一切正常。这是我用来获取CPU信息的代码:
Process[] processes = Process.GetProcesses(machineName);
foreach (Process p in processes)
{
var cpuTime = p.TotalProcessorTime;
}
但是我收到了这个错误:
远程计算机不支持此功能。
有没有其他方法可以获取此信息并仍然可以将其添加到我的SQL表中?
答案 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();