您的位置:首页 > 编程语言 > C#

[C#应用]得到物理内存大小和Windows可见内存大小

2006-11-21 13:26 489 查看

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: