通过WMI获取系统信息一个类,希望对大家有点帮助
来源:岁月联盟
时间:2003-07-12
using System.Management;
namespace PathFinder.OPSP.Management.Control
{
/// <summary>
/// 平台信息类
/// </summary>
public class PlatformInfo
{
private string m_strCPU;
private string m_strOS;
private string m_strRAM;
private string m_strVM;
private string m_strDisk;
public PlatformInfo()
{
this.Refresh();
}
public string CPU
{
get
{
return m_strCPU;
}
}
public string OS
{
get
{
return m_strOS;
}
}
public string RAM
{
get
{
return m_strRAM;
}
}
public string VirtualMemory
{
get
{
return m_strVM;
}
}
public string Disk
{
get
{
return m_strDisk;
}
}
public void Refresh()
{
GetCPU();
GetOS_RAM_VM();
GetDisk();
}
private void GetCPU()
{
m_strCPU = string.Empty;
ManagementClass objMC = new ManagementClass("Win32_Processor");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach(ManagementObject objMO in objMOC)
{
if (m_strCPU != string.Empty)
{
m_strCPU += "/r/n";
}
m_strCPU += (string)objMO["Caption"];
m_strCPU += " ";
uint iClockSpeed = (uint)objMO["CurrentClockSpeed"];
m_strCPU += iClockSpeed.ToString();
m_strCPU += "MHz";
objMO.Dispose();
}
objMOC.Dispose();
objMC.Dispose();
}
private void GetOS_RAM_VM()
{
ManagementClass objMC = new ManagementClass("Win32_OperatingSystem");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach(ManagementObject objMO in objMOC)
{
m_strOS = (string)objMO["Caption"];
ulong iRam = ((ulong)objMO["TotalVisibleMemorySize"])>>10;
m_strRAM = iRam.ToString() + " MB";
ulong iVM = ((ulong)objMO["TotalVirtualMemorySize"])>>10;
m_strVM = iVM.ToString() + " MB";
objMO.Dispose();
}
objMOC.Dispose();
objMC.Dispose();
}
private void GetDisk()
{
m_strDisk = string.Empty;
ManagementClass objMC = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach(ManagementObject objMO in objMOC)
{
if (m_strDisk != string.Empty)
{
m_strDisk += "/r/n";
}
m_strDisk += "Disk";
uint index = (uint)objMO["Index"];
m_strDisk += index.ToString();
m_strDisk += " ";
ulong iSize = (ulong)objMO["Size"];
int iTemp = (int)(iSize>>30);
if (iTemp>0)
{
m_strDisk += iTemp.ToString();
m_strDisk += " GB";
}
else
{
iTemp = (int)(iSize >>20);
m_strDisk += iTemp.ToString();
m_strDisk += " GB";
}
objMO.Dispose();
}
objMOC.Dispose();
objMC.Dispose();
}
}
}