【问题标题】:How to get Monitor serial number?如何获取显示器序列号?
【发布时间】:2011-09-01 10:46:27
【问题描述】:

有谁知道如何在 C 或 C++ 中获取连接的显示器序列号?我找到了一些代码,但它们是用我不明白的 vbs 编写的。我需要一些用 C 或 C++ 编写的示例代码。我知道序列号是从 EDID 读取的,但不幸的是我不知道如何 :( 有人可以帮我吗?

谢谢

更新:我也需要监视器类型,但这也可以从 EDID 以某种方式读取

【问题讨论】:

  • 将链接发布到您在 VBScript 中找到的代码可能会有所帮助
  • @Justin:在这里你可以找到它forum.bigfix.com/viewtopic.php?id=1552
  • 基本上该代码读取HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY 键并将它们与WMI 数据进行匹配(HKLM 还包含过去连接的监视器的EDID 数据)。您也可以从 SetupAPI 获取连接信息(监视器类)

标签: c++ c windows edid


【解决方案1】:

这不是您正在寻找的,但一个好的起点应该是GetMonitorInfo

我认为在 msdn 页面中挖掘更多内容应该可以为您提供所需的一切。 MSDN 实际上是寻找 C/C++ Windows API 函数的好地方。

【讨论】:

    【解决方案2】:

    Here 是一个指向更易读的 VB 代码的链接。他所做的基本上是在注册表中查找 Windows 存储显示器的 EDID 数据的位置。它位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\...\Device Parameters

    在维基百科文章中,您可以找到有关 EDID format 的信息

    【讨论】:

      【解决方案3】:

      这个DisplayDetails.GetMonitorDetails() code 对我很有用。我在测试中发现戴尔显示器能够可靠地返回 S/N 信息,但我尝试过的所有非戴尔显示器(其他 3 个品牌)都没有。

      【讨论】:

        猜你喜欢
        • 2011-11-08
        • 1970-01-01
        • 2011-01-09
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多