用C#获取当前客户端的显示器的品牌,型号,序列号

使用这个,只能拿到一个显示器的内容,而且信息不全

 ManagementClass mc10 = new ManagementClass("Win32_DesktopMonitor");
            ManagementObjectCollection moc10 = mc10.GetInstances();

 

您好,您所说的这个方式我没尝试过,不过如果你想得到系统硬件信息,我非常推荐使用WMI工具来查询系统的详细参数,这个WMI可以得到你想要的几乎所有硬件配置信息,而且可以通过类似于sql语句的查询方式实现,给你一段测试代码吧。

using System;
using System.Management;

public class MonitorInfo
{
    public string Manufacturer { get; set; }
    public string Model { get; set; }
    public string SerialNumber { get; set; }
}

public class Program
{
    public static void Main()
    {
        var monitorInfo = GetPrimaryMonitorInfo();
        
        Console.WriteLine("Manufacturer: " + monitorInfo.Manufacturer);
        Console.WriteLine("Model: " + monitorInfo.Model);
        Console.WriteLine("Serial Number: " + monitorInfo.SerialNumber);
    }
    
    public static MonitorInfo GetPrimaryMonitorInfo()
    {
        var monitorInfo = new MonitorInfo();
        
        try
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DesktopMonitor WHERE DeviceID='DesktopMonitor1'");
            ManagementObjectCollection collection = searcher.Get();
            
            foreach (ManagementObject obj in collection)
            {
                monitorInfo.Manufacturer = obj["MonitorManufacturer"].ToString();
                monitorInfo.Model = obj["MonitorModelName"].ToString();
                monitorInfo.SerialNumber = obj["SerialNumberID"].ToString();
                break;
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
        
        return monitorInfo;
    }
}