C# 获取电脑硬件信息

引入 System.Management.dll

            //获取所有硬盘序列号
            ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
            ManagementObjectCollection disks = diskClass.GetInstances();
            ManagementObjectCollection.ManagementObjectEnumerator disksEnumerator = disks.GetEnumerator();
            while (disksEnumerator.MoveNext())
            {
                ManagementObject disk = (ManagementObject)disksEnumerator.Current;
                Console.WriteLine("Disk found: " + disk["deviceid"] + "序列号:" + disk.Properties["VolumeSerialNumber"].Value.ToString());
            }

            //获取本机MAC地址
            string strMac = string.Empty;

            diskClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = diskClass.GetInstances();

            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"] == true)
                {
                    strMac = mo["MacAddress"].ToString();
                }
            }

            Console.WriteLine("MAC地址:" + strMac);

            double capacity = 0;//总物理内存
            double available = 0;//可用物理内存

            ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory");
            ManagementObjectCollection moc1 = cimobject1.GetInstances();
            foreach (ManagementObject mo1 in moc1)
            {
               capacity += ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024 / 1024.0, 1)));
            }

            moc1.Dispose();
            cimobject1.Dispose();

            //获取内存可用大小
            ManagementClass cimobject2 = new ManagementClass("Win32_PerfFormattedData_PerfOS_Memory");
            ManagementObjectCollection moc2 = cimobject2.GetInstances();
            foreach (ManagementObject mo2 in moc2)
            {
                available += ((Math.Round(Int64.Parse(mo2.Properties["AvailableMBytes"].Value.ToString()) / 1024.0, 1)));

            }
            moc2.Dispose();
            cimobject2.Dispose();

            double MemoryUsed = (Math.Round((capacity - available) / capacity * 100, 0));//使用率

            Console.WriteLine("总物理内存:" + capacity + ",可用物理内存:" + available + ",使用率:" + MemoryUsed);

 //取CPU编号
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc1 = mc.GetInstances();

            string strCpuID = null;

            foreach (ManagementObject mo in moc1)
            {
                strCpuID = mo.Properties["ProcessorId"].Value.ToString();
                break;
            }

            Console.WriteLine("CPU序列号:" + strCpuID);


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值