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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM