using System;<br />using System.Collections.Generic;<br />using System.Text;<br />using System.Management;<br />using System.Collections;</p><p>namespace PCHardWareInfo<br />{</p><p> /// <summary><br /> /// Computer Information<br /> /// </summary><br /> public class Computer<br /> {<br /> /// <summary><br /> /// CPU唯一序號<br /> /// </summary><br /> public string CpuID;<br /> /// <summary><br /> /// 網卡MAC地址<br /> /// </summary><br /> public string MacAddress;<br /> /// <summary><br /> /// 硬碟唯一ID號(擷取不到,不要使用)<br /> /// </summary><br /> public string DiskID;<br /> /// <summary><br /> /// 本機IP地址<br /> /// </summary><br /> public string IpAddress;<br /> /// <summary><br /> /// 本機登陸使用者<br /> /// </summary><br /> public string LoginUserName;<br /> /// <summary><br /> /// 電腦名稱<br /> /// </summary><br /> public string ComputerName;<br /> /// <summary><br /> /// 作業系統版本<br /> /// </summary><br /> public string SystemType;<br /> /// <summary><br /> /// 實體記憶體大小<br /> /// </summary><br /> public string TotalPhysicalMemory; //單位:M<br /> /// <summary><br /> ///<br /> /// </summary><br /> private static Computer _instance;<br /> /// <summary><br /> ///<br /> /// </summary><br /> /// <returns></returns><br /> public static Computer Instance()<br /> {<br /> if (_instance == null)<br /> _instance = new Computer();<br /> return _instance;<br /> }<br /> /// <summary><br /> /// 建構函式(擷取各個硬體資訊)<br /> /// </summary><br /> public Computer()<br /> {<br /> CpuID = GetCpuID();<br /> MacAddress = GetMacAddress();<br /> DiskID = GetDiskID();<br /> IpAddress = GetIPAddress();<br /> LoginUserName = GetUserName();<br /> SystemType = GetSystemType();<br /> TotalPhysicalMemory = GetTotalPhysicalMemory();<br /> ComputerName = GetComputerName();<br /> }<br /> string GetCpuID()<br /> {<br /> try<br /> {<br /> //擷取CPU序號代碼<br /> string cpuInfo = "";//cpu序號<br /> ManagementClass mc = new ManagementClass("Win32_Processor");<br /> ManagementObjectCollection moc = mc.GetInstances();<br /> foreach (ManagementObject mo in moc)<br /> {<br /> cpuInfo = mo.Properties["ProcessorId"].Value.ToString();<br /> }<br /> moc = null;<br /> mc = null;<br /> return cpuInfo;<br /> }<br /> catch<br /> {<br /> return "unknow";<br /> }<br /> finally<br /> {<br /> }</p><p> }<br /> string GetMacAddress()<br /> {<br /> try<br /> {<br /> //擷取網卡硬體地址<br /> string mac = "";<br /> ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");<br /> ManagementObjectCollection moc = mc.GetInstances();<br /> foreach (ManagementObject mo in moc)<br /> {<br /> if ((bool)mo["IPEnabled"] == true)<br /> {<br /> mac = mo["MacAddress"].ToString();<br /> break;<br /> }<br /> }<br /> moc = null;<br /> mc = null;<br /> return mac;<br /> }<br /> catch<br /> {<br /> return "unknow";<br /> }<br /> finally<br /> {<br /> }</p><p> }<br /> string GetIPAddress()<br /> {<br /> try<br /> {<br /> //擷取IP地址<br /> string st = "";<br /> ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");<br /> ManagementObjectCollection moc = mc.GetInstances();<br /> foreach (ManagementObject mo in moc)<br /> {<br /> if ((bool)mo["IPEnabled"] == true)<br /> {<br /> //st=mo["IpAddress"].ToString();<br /> System.Array ar;<br /> ar = (System.Array)(mo.Properties["IpAddress"].Value);<br /> st = ar.GetValue(0).ToString();<br /> break;<br /> }<br /> }<br /> moc = null;<br /> mc = null;<br /> return st;<br /> }<br /> catch<br /> {<br /> return "unknow";<br /> }<br /> finally<br /> {<br /> }</p><p> }</p><p> string GetDiskID()<br /> {<br /> try<br /> {<br /> //擷取硬碟ID<br /> String HDid = "";<br /> ManagementClass mc = new ManagementClass("Win32_DiskDrive");<br /> ManagementObjectCollection moc = mc.GetInstances();<br /> foreach (ManagementObject mo in moc)<br /> {<br /> HDid = (string)mo.Properties["Model"].Value;<br /> }<br /> moc = null;<br /> mc = null;<br /> return HDid;<br /> }<br /> catch<br /> {<br /> return "unknow";<br /> }<br /> finally<br /> {<br /> }</p><p> }</p><p> /// <summary><br /> /// 作業系統的登入使用者名稱<br /> /// </summary><br /> /// <returns></returns><br /> string GetUserName()<br /> {<br /> try<br /> {<br /> string st = "";<br /> ManagementClass mc = new ManagementClass("Win32_ComputerSystem");<br /> ManagementObjectCollection moc = mc.GetInstances();<br /> foreach (ManagementObject mo in moc)<br /> {</p><p> st = mo["UserName"].ToString();</p><p> }<br /> moc = null;<br /> mc = null;<br /> return st;<br /> }<br /> catch<br /> {<br /> return "unknow";<br /> }<br /> finally<br /> {<br /> }</p><p> }</p><p> /// <summary><br /> /// PC類型<br /> /// </summary><br /> /// <returns></returns><br /> string GetSystemType()<br /> {<br /> try<br /> {<br /> string st = "";<br /> ManagementClass mc = new ManagementClass("Win32_ComputerSystem");<br /> ManagementObjectCollection moc = mc.GetInstances();<br /> foreach (ManagementObject mo in moc)<br /> {</p><p> st = mo["SystemType"].ToString();</p><p> }<br /> moc = null;<br /> mc = null;<br /> return st;<br /> }<br /> catch<br /> {<br /> return "unknow";<br /> }<br /> finally<br /> {<br /> }</p><p> }</p><p> /// <summary><br /> ///<br /> /// </summary><br /> /// <returns></returns><br /> string GetComputerName()<br /> {<br /> try<br /> {<br /> return System.Environment.GetEnvironmentVariable("ComputerName");<br /> }<br /> catch<br /> {<br /> return "unknow";<br /> }<br /> finally<br /> {<br /> }<br /> }</p><p> }<br />}</p><p>