1

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

我已经尝试过以下方法:

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

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

这两个程序从哪里获得这些信息?我遇到的最后一个选项是从注册表中解析 EDID ......有没有人试过这个并且它有效吗?

4

2 回答 2

8

好吧,这个问题很老,但是,为了谷歌重定向,我建议使用“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);
}
于 2017-05-18T11:42:15.797 回答
0

看起来这可能已经在另一个问题中得到了回答: 我如何获得在分辨率对话框中看到的实际监视器名称

于 2013-02-20T21:14:42.100 回答