美文网首页
C# 读取电脑CPU、主板、硬盘序列号等信息

C# 读取电脑CPU、主板、硬盘序列号等信息

作者: SilenceTT | 来源:发表于2020-10-09 15:27 被阅读0次

添加引用:System.Management
头文件:ManagementObjectSearcher
引入命名空间:using System.Management;

实现方式

//获取CPU序列号
public string GetCPUSerialNumber()
{
    try
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");
        string sCPUSerialNumber = "";
        foreach (ManagementObject mo in searcher.Get())
        {
            sCPUSerialNumber = mo["ProcessorId"].ToString().Trim();
            break;
        }
        return sCPUSerialNumber;
    }
    catch
    {
        return "";
    }
}
 
 
//获取主板序列号
public string GetBIOSSerialNumber()
{
    try
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS");
        string sBIOSSerialNumber = "";
        foreach (ManagementObject mo in searcher.Get())
        {
            sBIOSSerialNumber = mo.GetPropertyValue("SerialNumber").ToString().Trim();
            break;
        }
        return sBIOSSerialNumber;
    }
    catch
    {
        return "";
    }
}
 
 
//获取硬盘序列号
public string GetHardDiskSerialNumber()
{
    try
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
        string sHardDiskSerialNumber = "";
        foreach (ManagementObject mo in searcher.Get())
        {
            sHardDiskSerialNumber = mo["SerialNumber"].ToString().Trim();
            break;
        }
        return sHardDiskSerialNumber;
    }
    catch
    {
        return "";
    }
}
 
 
//获取网卡地址
public string GetNetCardMACAddress()
{
    try
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
        string NetCardMACAddress = "";
        foreach (ManagementObject mo in searcher.Get())
        {
            NetCardMACAddress = mo["MACAddress"].ToString().Trim();
            break;
        }
        return NetCardMACAddress;
    }
    catch
    {
        return "";
    }
}

/// <summary>
/// WMI取硬件信息
/// </summary>
/// <param name="hardType"></param>
/// <param name="propKey"></param>
/// <returns></returns>
private static string[] MulGetHardwareInfo(HardwareEnum hardType, string propKey)
{

    List<string> deviceList = new List<string>();
    try
    {
        using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + hardType))
        {
            var hardInfos = searcher.Get();
            foreach (var hardInfo in hardInfos)
            {
                deviceList.Add(hardInfo.Properties[propKey].Value.ToString());
            }

            searcher.Dispose();
        }
        return deviceList.ToArray();
    }
    catch
    {
        return null;
    }
    finally
    { deviceList = null; }
}



public  void GetAllCOMs()
{
    try
    {
        string[] Port_Names =  MulGetHardwareInfo(HardwareEnum.Win32_SerialPort, "Name");
    }
    catch
    {
        ;
    }
}

详细类型说明

/// <summary>
/// 枚举win32 api
/// </summary>
private enum HardwareEnum
{
      // 硬件
      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, // 已安装的网络协议
      Win32_PnPEntity,//all device
}

相关文章

网友评论

      本文标题:C# 读取电脑CPU、主板、硬盘序列号等信息

      本文链接:https://www.haomeiwen.com/subject/iimlpktx.html