using system;
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();
}
}
}
