C# 读取硬盘信息 ManagementClass类

一、在很多情况下,你可能都需要得到微机的硬件信息。需要加上下面的这句话:

using System.Management;

获取硬件信息,需先知道硬件参数信息:

Win32_Processor, // CPU 处理器 

Win32_PhysicalMemory, // 物理内存条 

Win32_Keyboard, // 键盘 

Win32_PointingDevice, // 点输入设备,包括鼠标。 

Win32_FloppyDrive, // 软盘驱动器 

Win32_DiskDrive, // 硬盘驱动器 

Win32_CDROMDrive, // 光盘驱动器 

Win32_BaseBoard, // 主板 

Win32_BIOS, // BIOS 芯片 

Win32_ParallelPort, // 并口 

Win32_SerialPort, // 串口 

Win32_SerialPortConfiguration, // 串口配置 

Win32_SoundDevice, // 多媒体设置,一般指声卡。 

Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP) 

Win32_USBController, // USB 控制器 

Win32_NetworkAdapter, // 网络适配器 

Win32_NetworkAdapterConfiguration, // 网络适配器设置 

Win32_Printer, // 打印机 

Win32_PrinterConfiguration, // 打印机设置 

Win32_PrintJob, // 打印机任务 

Win32_TCPIPPrinterPort, // 打印机端口 

Win32_POTSModem, // MODEM 

Win32_POTSModemToSerialPort, // MODEM 端口 

Win32_DesktopMonitor, // 显示器 

Win32_DisplayConfiguration, // 显卡 

Win32_DisplayControllerConfiguration, // 显卡设置 

Win32_VideoController, // 显卡细节。 

Win32_VideoSettings, // 显卡支持的显示模式。 



// 操作系统 

Win32_TimeZone, // 时区 

Win32_SystemDriver, // 驱动程序 

Win32_DiskPartition, // 磁盘分区 

Win32_LogicalDisk, // 逻辑磁盘 

Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。 

Win32_LogicalMemoryConfiguration, // 逻辑内存配置 

Win32_PageFile, // 系统页文件信息 

Win32_PageFileSetting, // 页文件设置 

Win32_BootConfiguration, // 系统启动配置 

Win32_ComputerSystem, // 计算机信息简要 

Win32_OperatingSystem, // 操作系统信息 

Win32_StartupCommand, // 系统自动启动程序 

Win32_Service, // 系统安装的服务 

Win32_Group, // 系统管理组 

Win32_GroupUser, // 系统组帐号 

Win32_UserAccount, // 用户帐号 

Win32_Process, // 系统进程 

Win32_Thread, // 系统线程 

Win32_Share, // 共享 

Win32_NetworkClient, // 已安装的网络客户端 

Win32_NetworkProtocol, // 已安装的网络协议
View Code

根据上面提供的信息,获取你需要的;

ManagementClass mc = new ManagementClass("Win32_Processor");  

ManagementObjectCollection moc = mc.GetInstances(); 

 

下面介绍一下ManagementClass 类;

  1.GetInstances():此方法存在四个重载;

  2.Get():此方法存在俩个重载;

  3.GetSubclasses():此方法存在四个重载版本

二.ManagementClass类的部分应用:

 1.获得CPU编号

       /// <summary>
        /// 获得CPU编号
        /// </summary>
        /// <returns></returns>
        public string GetCpuid()
        {
            var cpuid = string.Empty;
            var mc = new ManagementClass("Win32_Processor");
            var moc = mc.GetInstances();
            foreach (var o in moc)
            {
                var mo = (ManagementObject) o;
                cpuid = mo.Properties["ProcessorId"].Value.ToString();
            }
            return cpuid;
        }
View Code

2.获取硬盘序列号

 1 /// <summary>
 2         /// 获取硬盘序列号
 3         /// </summary>
 4         /// <returns></returns>
 5         public string GetDiskSerialNumber()
 6         {
 7             //这种模式在插入一个U盘后可能会有不同的结果,如插入我的手机时
 8             var hDid = string.Empty;
 9             var mc = new ManagementClass("Win32_DiskDrive");
10             var moc = mc.GetInstances();
11             foreach (var o in moc)
12             {
13                 var mo = (ManagementObject) o;
14                 hDid = (string)mo.Properties["Model"].Value;
15                 //这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘
16                 break;
17             }
18             return hDid;
19         }
View Code

 

posted @ 2018-02-25 11:02  ZHLBKY  阅读(899)  评论(0编辑  收藏  举报