using System; using System.Collections.Generic; using System.ComponentModel; using System.Management; 得到Windows可用物理内存大小 #region 得到Windows可用物理内存大小 string GetPhysicalMemorySize() ...{ //PhysicalMemorySize 可用物理内存大小,与资源管理器中的关于对话框显示的内存大小一致 //FreePhysicalMemory 剩余物理内存大小 ulong PhysicalMemorySize = 0, VirtualMemorySize = 0, FreePhysicalMemory = 0; 调用方式一#region 调用方式一 //ManagementObjectSearcher seacher = new ManagementObjectSearcher("Select * From Win32_OperatingSystem"); //foreach (ManagementBaseObject obj in seacher.Get()) //{ // if (obj["TotalVisibleMemorySize"] != null) // PhysicalMemorySize = (ulong)obj["TotalVisibleMemorySize"]; // if (obj["TotalVirtualMemorySize"] != null) // VirtualMemorySize = (ulong)obj["TotalVirtualMemorySize"]; // if (obj["FreePhysicalMemory"] != null) // FreePhysicalMemory = (ulong)obj["FreePhysicalMemory"]; // break; //} #endregion 调用方式二#region 调用方式二 ManagementClass osClass = new ManagementClass("Win32_OperatingSystem"); foreach (ManagementObject obj in osClass.GetInstances()) ...{ if (obj["TotalVisibleMemorySize"] != null) PhysicalMemorySize = (ulong)obj["TotalVisibleMemorySize"]; if (obj["TotalVirtualMemorySize"] != null) VirtualMemorySize = (ulong)obj["TotalVirtualMemorySize"]; if (obj["FreePhysicalMemory"] != null) FreePhysicalMemory = (ulong)obj["FreePhysicalMemory"]; break; } #endregion if (PhysicalMemorySize > 0) return string.Format("{0:###,###,###} KB", PhysicalMemorySize); else return "Unknown"; } #endregion 得到物理内存的大小的代码如下: 得到物理内存信息 #region 得到物理内存信息 string GetPhysicalMemory() ...{ ManagementClass osClass = new ManagementClass("Win32_PhysicalMemory"); ulong Capacity = 0; StringBuilder CapacityString = new StringBuilder(); foreach (ManagementObject obj in osClass.GetInstances()) ...{ if (obj["Capacity"] != null) ...{ ulong CurrentCapacity = (ulong)obj["Capacity"] / 1024 / 1024; Capacity += CurrentCapacity; CapacityString.Append(string.Format(" + {0:##,###,###}MB", CurrentCapacity)); } //if (obj["MemoryType"] != null) // CapacityString += "[" + obj["MemoryType"].ToString() + "]"; } return string.Format("{0:##,###,###}MB ({1})", Capacity, CapacityString.ToString().TrimStart('+', ' ')); } #endregion