C# 获取电脑配置信息

对于软件绑定电脑常用到的方法汇总

 public class Computer
    {
        public string MyProperty { get; set; }
        /// <summary>  
        /// CPU序列号  
        /// </summary>  
        private string cpuID;
        /// <summary>  
        /// 网卡/Mac地址  
        /// </summary>  
        private string macAddress;
        /// <summary>  
        /// 硬盘ID  
        /// </summary>  
        private string diskID;
        /// <summary>  
        /// IP地址  
        /// </summary>  
        private string ipAddress;
        /// <summary>  
        /// 系统登录用户名  
        /// </summary>  
        private string loginUserName;
        /// <summary>  
        /// 系统名称  
        /// </summary>  
        private string computerName;
        /// <summary>  
        /// 系统型号  
        /// </summary>  
        private string systemType;
        /// <summary>  
        /// 物理内存(单位b)  
        /// </summary>  
        private string totalPhysicalMemory;
        /// <summary>
        /// 系统唯一ID
        /// </summary>
        private string sysID;
        /// <summary>
        /// 主板序列号BiosID
        /// </summary>
        private string smBisoUUID;
        private static Computer _instance;
        public string CpuID
        {
            get
            {
                return cpuID;
            }

            set
            {
                cpuID = value;
            }
        }
        public string MacAddress
        {
            get
            {
                return macAddress;
            }

            set
            {
                macAddress = value;
            }
        }

        public string DiskID
        {
            get
            {
                return diskID;
            }

            set
            {
                diskID = value;
            }
        }

        public string IpAddress
        {
            get
            {
                return ipAddress;
            }

            set
            {
                ipAddress = value;
            }
        }

        public string LoginUserName
        {
            get
            {
                return loginUserName;
            }

            set
            {
                loginUserName = value;
            }
        }

        public string ComputerName
        {
            get
            {
                return computerName;
            }

            set
            {
                computerName = value;
            }
        }

        public string SystemType
        {
            get
            {
                return systemType;
            }

            set
            {
                systemType = value;
            }
        }

        public string TotalPhysicalMemory
        {
            get
            {
                return totalPhysicalMemory;
            }

            set
            {
                totalPhysicalMemory = value;
            }
        }

        public static Computer Instance1
        {
            get
            {
                return _instance;
            }

            set
            {
                _instance = value;
            }
        }

        public string SysID
        {
            get
            {
                return sysID;
            }

            set
            {
                sysID = value;
            }
        }

        public string SmBisoUUID
        {
            get
            {
                return smBisoUUID;
            }

            set
            {
                smBisoUUID = value;
            }
        }

        public static Computer Instance()
        {
            if (Instance1 == null)
                Instance1 = new Computer();
            return Instance1;
        }
        public Computer()
        {
            CpuID = GetCpuID();
            MacAddress = GetMacAddress();
            DiskID = GetDiskID();
            IpAddress = GetIPAddress();
            LoginUserName = GetUserName();
            SystemType = GetSystemType();
            TotalPhysicalMemory = GetTotalPhysicalMemory();
            ComputerName = GetComputerName();
            SysID = GetSysIDMethod();
            SmBisoUUID = GetSmBisoUUID();
        }
        //获取系统唯一ID
        string GetSysIDMethod()
        {
            try
            {
                string sysId = "";
                Process da = new Process();
                da.StartInfo.FileName = "cmd.exe";
                da.StartInfo.Arguments = "/k cscript %WINDIR%\\SYSTEM32\\SLMGR.VBS /DTI";
                da.StartInfo.UseShellExecute = false;       //是否使用操作系统shell启动
                da.StartInfo.RedirectStandardInput = true;  //接受来自调用程序的输入信息
                da.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息
                da.StartInfo.RedirectStandardError = true;  //重定向标准错误输出
                da.StartInfo.CreateNoWindow = true;         //不显示程序窗口
                da.Start();                                 //启动程序
                da.StandardInput.WriteLine("exit");
                string strRst = da.StandardOutput.ReadToEnd();
                string[] readLine = strRst.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
                string id = readLine[2].Split(':')[1].Trim();
                sysId = id;
                return sysId;
            }
            catch (Exception ex)
            {
                string getSysIdError = Application.StartupPath + "\\SysteamLog\\GetSysIdError.log";
                CheckVideoPath check = new CheckVideoPath(getSysIdError);
                check.Write(ex.Message);
                return "unknow";
            }
        }
        //CPU ID
        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";
            }
        }
        //MAC地址
        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";
            }
        }
        //网络地址
        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";
            }
        }
        //硬盘ID
        string GetDiskID()
        {
            try
            {
                string hdInfo = "";//硬盘序列号  
                ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
                hdInfo = disk.Properties["VolumeSerialNumber"].Value.ToString();
                disk = null;
                return hdInfo.Trim();
            }
            catch (Exception e)
            {
                return "uHnIk";
            }
        }

        /// <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";
            }
        }


        /// <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";
            }

        }

        /// <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";
            }
        }
        /// <summary>  
        /// 系统名称  
        /// </summary>  
        /// <returns></returns>  
        string GetComputerName()
        {
            try
            {
                return System.Environment.GetEnvironmentVariable("ComputerName");
            }
            catch
            {
                return "unknow";
            }
        }
        /// <summary>
        /// 获取UUID
        /// </summary>
        /// <returns></returns>
        private string GetSmBisoUUID()
        {
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_ComputerSystemProduct");
                string smBisoUUId = "";
                foreach (ManagementObject mo in searcher.Get())
                {
                    String Key = "自定义标识";
                    smBisoUUId = mo["UUID"].ToString().Trim().Replace("-", "");
                    MD5 md5 = new MD5CryptoServiceProvider();
                    byte[] output = md5.ComputeHash(Encoding.Default.GetBytes(smBisoUUId + Key));
                    smBisoUUId = BitConverter.ToString(output).Replace("-", "");//编码后的唯一UUID去掉横杠
                }
                return smBisoUUId;
            }
            catch
            {
                return "unknowUUID";
            }
        }
    }

 

posted @ 2019-01-07 14:33  流光霁雨  阅读(3494)  评论(0编辑  收藏  举报