获取精确的监视器/显示/屏幕名称

时间:2013-02-20 20:15:46

标签: c# winforms desktop-application

我有一个用户选择目标监视器的程序,但我无法获得真正的监视器 名称/型号。

我已经尝试了以下内容:

  • Screen.AllScreens没用;
  • WMI和Win32 EnumDisplayDevices都返回Generic PnP Monitor;
  • 设备管理器还显示Generic PnP Monitor ...

在资源管理器中,附有监视器的实际名称,在珠穆朗玛峰中,它显示的细节更加深入......

这两个程序从哪里获取这些信息?我遇到的最后一个选项 是从解决方案解析EDID ...有没有人尝试过这个并且有效吗?

2 个答案:

答案 0 :(得分:4)

嗯,这个问题很老,但是,为了谷歌重定向,我建议使用'WindowsDisplayAPI'库。

https://www.nuget.org/packages/WindowsDisplayAPI

使用该库,有多种方法可以获取显示名称。最简单的方法是:

foreach (var display in Display.GetDisplays())
{
    Console.WriteLine(display.DeviceName);
}

但这是使用旧的API,如果您确定您的程序至少针对Windows Vista,我建议使用以下代码:

foreach (var target in DisplayConfig.PathDisplayTarget.GetDisplayTargets())
{
    Console.WriteLine(target.FriendlyName);
}

答案 1 :(得分:0)

看起来这可能已经在另一个问题中得到了解答: How do i get the actual monitor name as seen in the resolution dialog