tnblog
首页
登录

C# 读取硬盘信息 ManagementClass类

301人阅读 2019/3/11 15:45 评论:1 手机 收藏 关注
分类: Win32

标签:roc   图片   dap   emd   编号   open   thread   文件   需要   

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

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.获取硬盘序列号

 /// <summary>
 /// 获取硬盘序列号
 /// </summary>
 /// <returns></returns>
 public string GetDiskSerialNumber()
 {
     //这种模式在插入一个U盘后可能会有不同的结果,如插入我的手机时
     var hDid = string.Empty;
     var mc = new ManagementClass("Win32_DiskDrive");
     var moc = mc.GetInstances();
     foreach (var o in moc)
     {
         var mo = (ManagementObject)o;
         hDid = (string) mo.Properties["Model"].Value;
         //这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘
         break;
     }
     return hDid;
 }

转至:http://www.mamicode.com/info-detail-2201502.html

评价
!咖喱棒!
文章
6
粉丝
16
评论
8
分类
16
{{item.ArticleTitle}}
{{item.BlogName}} : {{item.Content}}