using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
namespace MachineState
{
public class MachineStateHelper
{
/// <summary>
/// Format Size
/// </summary>
/// <param name="size"></param>
/// <returns></returns>
public string GetSizeUseUnit(string size)
{
double dSpace = Convert.ToDouble(size);
string sSpace = dSpace.ToString("N");
string[] tmp;
string rtnSize = "0";
tmp = sSpace.Split(',');
switch (tmp.GetUpperBound(0))
{
case 0:
rtnSize = tmp[0] + "bytes";
break;
case 1:
rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " K";
break;
case 2:
rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " M";
break;
case 3:
rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " G";
break;
case 4:
rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " T";
break;
}
return rtnSize;
}
/// <summary>
/// Get Computer Info
/// </summary>
/// <param name="scope"></param>
public string GetComputerInfo(ManagementScope scope)
{
string result = string.Empty;
SelectQuery query = new SelectQuery("Select * From Win32_ComputerSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection moc = searcher.Get();
foreach (ManagementObject mbObject in moc)
{
result += string.Format("Currently logged in user: {0}, Manufacturer: {1}, Model: {2}/r/n", mbObject["UserName"].ToString(), mbObject["Manufacturer"].ToString(), mbObject["Model"].ToString());
}
return result;
}
/// <summary>
/// Get Operating System Information
/// </summary>
public string GetOperatingSystemInfo(ManagementScope scope)
{
string result = string.Empty;
SelectQuery query = new SelectQuery("Select * From Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementBaseObject mbObject in queryCollection)
{
result += string.Format("Operating System: {0}, Serial Number: {1}/r/n", mbObject["Caption"].ToString(), mbObject["SerialNumber"].ToString());
}
return result;
}
/// <summary>
/// Get CPU Information
/// </summary>
/// <param name="scope"></param>
public string GetCPUInfo(ManagementScope scope)
{
string result = string.Empty;
SelectQuery query = new SelectQuery("Select * From Win32_Processor");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection moc = searcher.Get();
foreach (ManagementObject mbObject in moc)
{
result += string.Format("CPU:{0},Process ID:{1}/r/n", mbObject["Name"].ToString(), mbObject["ProcessorID"].ToString());
}
return result;
}
/// <summary>
/// Win32_DiskDrive Get Hard Disk Information
/// </summary>
public string GetHardDiskInfo(ManagementScope scope)
{
string result = string.Empty;
SelectQuery query = new SelectQuery("Select * From Win32_DiskDrive");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementBaseObject mbObject in queryCollection)
{
result += string.Format("HardDisk ID:{0}, HardDisk Size:{1}/r/n", mbObject["Model"].ToString(), GetSizeUseUnit(mbObject["Size"].ToString()));
}
return result;
}
/// <summary>
/// Get Main Board Info
/// </summary>
public string GetMainBoardInfo(ManagementScope scope)
{
string result = string.Empty;
SelectQuery query = new SelectQuery("Select * From WIN32_BaseBoard");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection moc = searcher.Get();
foreach (ManagementObject mbObject in moc)
{
result += string.Format("Serial Number:{0}, Manufacturer:{1}/r/n", mbObject["SerialNumber"].ToString(), mbObject["Manuf