C#获取机器硬件信息

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>


    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  
                {  
                }  
            }  
      
      
        }  
    }