C#通过WMI获得硬件信息

C#很难绕过WMI去获得硬件信息,这里列一下常用的获得硬件信息的方法。

ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mc.GetInstances();
            if (moc.Count > 0)
                foreach (ManagementObject mo in moc)
                {
                    listBox1.Items.Add("CPU ID = " + mo.Properties["ProcessorId"].Value.ToString()+", DeviceID="+ mo.Properties["SerialNumber"].Value.ToString() );
                    //break;
                }

            mc = new ManagementClass("Win32_DiskDrive");
            moc = mc.GetInstances();
            if (moc.Count > 0)
                foreach (ManagementObject mo in moc)
                {//SerialNumber
                    listBox1.Items.Add("HDD = " + mo.Properties["Model"].Value.ToString() +", Type="+ mo.Properties["InterfaceType"].Value.ToString());
                }

            mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            moc = mc.GetInstances();
            if (moc.Count > 0)
                foreach (ManagementObject mo in moc)
                {
                    if ((bool)mo["IPEnabled"] == true)
                    {
                        listBox1.Items.Add("MAC = " + mo.Properties["MacAddress"].Value.ToString());
                        //break;
                    }
                }

            mc = new ManagementClass("Win32_baseboard");
            moc = mc.GetInstances();
            if (moc.Count > 0)
                foreach (ManagementObject mo in moc)
                {
                    listBox1.Items.Add("BaseBoard = " + mo.Properties["SerialNumber"].Value.ToString());
                    //break;
                }

            mc = new ManagementClass("Win32_BIOS");
            moc = mc.GetInstances();
            if (moc.Count > 0)
                foreach (ManagementObject mo in moc)
                {
                    listBox1.Items.Add("Bios = " + mo.Properties["SerialNumber"].Value.ToString());
                    //break;
                }

            mc.Dispose();
            moc.Dispose();
            label1.Text = (DateTime.Now - st).TotalMilliseconds.ToString();

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值