C#读取CPU数量,内存容量

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

可以通过Windows Management Instrumentation (WMI)提供的接口读取所需要的信息。
private static UInt32 CountPhysicalProcessors()
{
    ManagementObjectSearcher objects = new ManagementObjectSearcher(
      “SELECT * FROM Win32_ComputerSystem”);
    ManagementObjectCollection coll = objects.Get();
    foreach(ManagementObject obj in coll)
   {
      return (UInt32)obj[“NumberOfProcessors”];
   } 
   return 0;
}
private static UInt64 CountPhysicalMemory()
{
  ManagementObjectSearcher objects =new ManagementObjectSearcher(
    “SELECT * FROM Win32_PhysicalMemory”);
  ManagementObjectCollection coll = objects.Get();
  UInt64 total = 0;
  foreach (ManagementObject obj in coll)
  {
     total += (UInt64)obj[“Capacity”];
   }
   return total;
}

请添加对程序集System.Management的引用,确保代码可以正确编译。

Console.WriteLine(“Machine: {0}”, Environment.MachineName);
Console.WriteLine(“# of processors (logical): {0}”, Environment.ProcessorCount);
Console.WriteLine(“# of processors (physical): {0}”  CountPhysicalProcessors());
Console.WriteLine(“RAM installed: {0:N0} bytes”,  CountPhysicalMemory());
Console.WriteLine(“Is OS 64-bit? {0}”,   Environment.Is64BitOperatingSystem);
Console.WriteLine(“Is process 64-bit? {0}”,  Environment.Is64BitProcess);
Console.WriteLine(“Little-endian: {0}”, BitConverter.IsLittleEndian);
foreach (Screen screen in  System.Windows.Forms.Screen.AllScreens)
{
  Console.WriteLine(“Screen {0}”, screen.DeviceName);
  Console.WriteLine(“\tPrimary {0}”, screen.Primary);
  Console.WriteLine(“\tBounds: {0}”, screen.Bounds);
  Console.WriteLine(“\tWorking Area: {0}”,screen.WorkingArea);
  Console.WriteLine(“\tBitsPerPixel: {0}”,screen.BitsPerPixel);
}