如何获得硬盘序列号,以及主板的序列号 C#

 class HardDrive
        {
            private string model = null;
            private string type = null;
            private string serialNo = null;

            public string Model
            {
                get { return model; }
                set { model = value; }
            }

            public string Type
            {
                get { return type; }
                set { type = value; }
            }

            public string SerialNo
            {
                get { return serialNo; }
                set { serialNo = value; }
            }
        }

 

 public string GetComputerId()
        {
            List<HardDrive> list = new List<HardDrive>();
            ManagementObjectSearcher searcher = new
                ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

            foreach (ManagementObject wmi_HD in searcher.Get())
            {
                try
                {
                    HardDrive hd = new HardDrive();
                    hd.Model = wmi_HD["Model"].ToString();
                    hd.Type = wmi_HD["InterfaceType"].ToString();
                    if (hd.Type.ToLowerInvariant().Contains("usb"))
                    {
                        continue;
                    }

                    if (wmi_HD["SerialNumber"] != null)
                    {
                        hd.SerialNo = wmi_HD["SerialNumber"].ToString();
                    }

                    list.Add(hd);
                }
                catch
                {
                }
            }

            searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

            foreach (ManagementObject wmi_HD in searcher.Get())
            {
                try
                {
                    HardDrive hd = new HardDrive();

                    // get the hardware serial no.
                    if (wmi_HD["SerialNumber"] == null || string.IsNullOrEmpty(wmi_HD["SerialNumber"].ToString()))
                    {
                        continue;
                    }
                    else
                        hd.SerialNo = wmi_HD["SerialNumber"].ToString();
                }
                catch { }
            }

            ManagementClass mc = new ManagementClass("Win32_BaseBoard");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                try
                {
                    HardDrive hd = new HardDrive();
                    hd.SerialNo = mo.Properties["SerialNumber"].Value.ToString();
                    list.Add(hd);
                }
                catch { }
            }

            if (list.Count > 0)
            {
                string str = null;
                foreach (var value in list)
                {
                    str = str + value.SerialNo;
                }

                if (string.IsNullOrEmpty(str))
                {
                    return string.Empty;
                }

                try
                {
                    byte[] bytes = Encoding.Default.GetBytes(str);
                    return Convert.ToBase64String(bytes);
                }
                catch
                {
                    return string.Empty;
                }
            }

            return string.Empty;
        }
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值