【问题标题】:Obtain user-friendly monitor name from IDXGIOutput1从 IDXGIOutput1 获取用户友好的监视器名称
【发布时间】:2013-12-23 05:30:47
【问题描述】:

我有一个IDXGIOutput1,它指的是显示输出。但是,我似乎找不到将其转换为您可以在屏幕分辨率(我在 Windows 7 上)中看到的显示器的面向用户的名称的方法。到目前为止,我已经尝试了this 答案(并检查了引用的其他几个 WMI 属性)和this 问答中的代码。但到目前为止我得到的最好的是“通用即插即用监视器”。我的屏幕分辨率给的名称是“Acer V243H”之类的东西。

【问题讨论】:

  • 我有两台显示器——一台来自戴尔,一台来自华硕。戴尔报告自己很好,型号正确,注册表中的条目等。我怀疑您上面链接的两个答案中的任何一个都会显示此显示器的正确字符串。另一方面,华硕显示“通用 PnP 监视器”无处不在,但屏幕分辨率 UI 除外。不幸的是,我在注册表的任何地方都找不到模型字符串,而且我在系统上的任何文件中找到它的唯一位置是某个不起眼的应用程序兼容目录。您可能无法找到可靠的方法来获取此字符串。

标签: windows directx


【解决方案1】:

您可以使用每台显示器的 EDID(扩展显示识别数据)来获取每台显示器的供应商和型号。这是操作系统获取连接到系统的每个监视器的所有信息的地方。

您可以关注这篇解释如何在 Windows 7 中获取 EDID 数据结构的文章:Win32 code to get EDID in Windows XP/7

然后根据EDID format,您要查找的信息将位于偏移量 54 和 125 之间的描述符块之一中。

EDID Manager 工具可以帮助您在一个漂亮的 GUI 中遍历 EDID,这样您就可以准确地看到所需信息在 EDID 结构中的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多