C#獲取機器硬件信息

nnf6 9年前發布 | 3K 次閱讀 C#


using System;  
using System.Management;  
namespace Soyee.Comm  
{  
    /// <summary>  
    /// Computer Information  
    /// </summary>  
    public class Computer  
    {  
        public string CpuID;  
        public string MacAddress;  
        public string DiskID;  
        public string IpAddress;  
        public string LoginUserName;  
        public string ComputerName;  
        public string SystemType;  
        public string TotalPhysicalMemory; //單位:M  
        private static Computer _instance;  
        public static Computer Instance()  
        {  
            if (_instance == null)  
                _instance = new Computer();  
            return _instance;  
        }  
        protected  Computer()  
        {  
            CpuID=GetCpuID();  
            MacAddress=GetMacAddress();  
            DiskID=GetDiskID();  
            IpAddress=GetIPAddress();  
            LoginUserName=GetUserName();  
            SystemType=GetSystemType();  
            TotalPhysicalMemory=GetTotalPhysicalMemory();  
            ComputerName=GetComputerName();  
        }  
        string  GetCpuID()  
        {  
            try  
            {  
                //獲取CPU序列號代碼  
                string cpuInfo = "";//cpu序列號  
                ManagementClass mc = new ManagementClass("Win32_Processor");  
                ManagementObjectCollection moc = mc.GetInstances();  
                foreach(ManagementObject mo in moc)  
                {  
                    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();  
                }  
                moc=null;  
                mc=null;  
                return cpuInfo;  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  

        }  
        string  GetMacAddress()  
        {  
            try  
            {  
                //獲取網卡硬件地址  
                string mac="";  
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");  
                ManagementObjectCollection moc = mc.GetInstances();  
                foreach(ManagementObject mo in moc)  
                {  
                    if((bool)mo["IPEnabled"] == true)  
                    {  
                        mac=mo["MacAddress"].ToString();  
                        break;  
                    }  
                }  
                moc=null;  
                mc=null;  
                return mac;  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  

        }  
        string  GetIPAddress()  
        {  
            try  
            {  
                //獲取IP地址  
                string st="";  
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");  
                ManagementObjectCollection moc = mc.GetInstances();  
                foreach(ManagementObject mo in moc)  
                {  
                    if((bool)mo["IPEnabled"] == true)  
                    {  
                        //st=mo["IpAddress"].ToString();  
                        System.Array ar;  
                        ar=(System.Array)(mo.Properties["IpAddress"].Value);  
                        st=ar.GetValue(0).ToString();  
                        break;  
                    }  
                }  
                moc=null;  
                mc=null;  
                return st;  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  

        }  

        string  GetDiskID()  
        {  
            try  
            {  
                //獲取硬盤ID  
                String HDid="";  
                ManagementClass mc = new ManagementClass("Win32_DiskDrive");  
                ManagementObjectCollection moc = mc.GetInstances();  
                foreach(ManagementObject mo in moc)  
                {  
                    HDid = (string)mo.Properties["Model"].Value;  
                }  
                moc=null;  
                mc=null;  
                return HDid;  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  

        }  

        /// <summary>  
        /// 操作系統的登錄用戶名  
        /// </summary>  
        /// <returns></returns>  
        string  GetUserName()  
        {  
            try  
            {  
                string st="";  
                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");  
                ManagementObjectCollection moc = mc.GetInstances();  
                foreach(ManagementObject mo in moc)  
                {  

                    st=mo["UserName"].ToString();  

                }  
                moc=null;  
                mc=null;  
                return st;  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  

        }  


        /// <summary>  
        /// PC類型  
        /// </summary>  
        /// <returns></returns>  
        string  GetSystemType()  
        {  
            try  
            {  
                string st="";  
                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");  
                ManagementObjectCollection moc = mc.GetInstances();  
                foreach(ManagementObject mo in moc)  
                {  

                    st=mo["SystemType"].ToString();  

                }  
                moc=null;  
                mc=null;  
                return st;  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  

        }  

        /// <summary>  
        /// 物理內存  
        /// </summary>  
        /// <returns></returns>  
        string  GetTotalPhysicalMemory()  
        {  
            try  
            {  

                string st="";  
                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");  
                ManagementObjectCollection moc = mc.GetInstances();  
                foreach(ManagementObject mo in moc)  
                {  

                    st=mo["TotalPhysicalMemory"].ToString();  

                }  
                moc=null;  
                mc=null;  
                return st;  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  
        }  
        /// <summary>  
        ///   
        /// </summary>  
        /// <returns></returns>  
        string  GetComputerName()  
        {  
            try  
            {                 
                return System.Environment.GetEnvironmentVariable("ComputerName");  
            }  
            catch  
            {  
                return "unknow";  
            }  
            finally  
            {  
            }  
        }  


    }  
}

</pre>

 本文由用戶 nnf6 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!