有谁知道如何在 C 或 C++ 中获取连接的显示器序列号?我找到了一些代码,但它们是用我不明白的 vbs 编写的。我需要一些用 C 或 C++ 编写的示例代码。我知道序列号是从 EDID 读取的,但不幸的是我不知道如何 :( 有人可以帮我吗?
谢谢
更新:我也需要监视器类型,但这也可以从 EDID 以某种方式读取
这是一个希望更易读的 VB 代码的链接。他所做的基本上是在注册表中查找 Windows 存储显示器的 EDID 数据的位置。它位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\...\Device 参数
在维基百科文章中,您可以找到有关EDID 格式的信息
这不是您正在寻找的东西,但一个好的起点应该是GetMonitorInfo
我认为在 msdn 页面中挖掘更多内容应该可以为您提供所需的一切。MSDN 实际上是寻找 C/C++ Windows API 函数的好地方。
这个DisplayDetails.GetMonitorDetails() 代码对我来说非常有用。我在测试中发现戴尔显示器可靠地返回了 S/N 信息,但是我尝试过的所有非戴尔显示器(其他 3 个品牌)都没有。