2012-03-28 83 views
-2

您如何在c sharp中使用“性能计数器”获取总内存,CPU使用率等WMI信息。获取WMI信息的C代码

+1

以前问的问题... – 2012-03-28 09:08:58

+0

尝试http://www.codeproject.com/Articles/26310/Using-WMI-to-retrieve-processor-in-in-C – 2012-03-28 09:10:13

+0

所以你能帮忙吗? – user1297661 2012-03-28 09:10:43

回答

1
private static PerformanceCounter cpuCounter; 
private static PerformanceCounter memoryCounter; 

[...] 

cpuCounter = new PerformanceCounter 
{ 
    CategoryName = "Processor", 
    CounterName = "% Processor Time", 
    InstanceName = "_Total" 
}; 


memoryCounter = new PerformanceCounter 
{ 
    CategoryName = "Memory", 
    CounterName = "Available Bytes" 
}; 

[...] 

public double CpuUsage 
{ 
    get 
    { 
     lock (lockToken) 
     { 
      return Math.Round(cpuCounter.NextValue(), 2); 
     } 
    } 
} 

public double MemoryUsage 
{ 
    get 
    { 
     lock (lockToken) 
     { 
      return Math.Round(memoryCounter.NextValue()/totalMemory * 100, 2); 
     } 
    } 
    } 

总内存:

using (var searcher = new ManagementObjectSearcher("SELECT totalphysicalmemory FROM Win32_ComputerSystem")) 
     { 
      using (var wmiData = searcher.Get()) 
      { 
       foreach (var mo in wmiData) 
       { 
        totalMemory = long.Parse(mo["totalphysicalmemory"].ToString()); 
       } 
      } 
     } 

为了让你必须自己做一些研究的虚拟内存。

+0

谢谢你。你如何获取可用内存和虚拟内存。 – user1297661 2012-03-28 09:17:18

+0

@ user1297661,看我的编辑。 – lurkerbelow 2012-03-28 09:21:16

+0

感谢帮助 – user1297661 2012-03-28 09:36:07