如何获得监视器序列号?

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

谢谢

更新:我也需要显示器types,但是也可以从EDID读取

Solutions Collecting From Web of "如何获得监视器序列号?"

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

我认为在MSDN页面中进一步挖掘应该给你你需要的一切。 MSDN实际上是查找C / C ++ Windows API函数的好地方。

这里是一个链接,希望更可读的VB代码。 他基本上正在做的是在Windows注册表中查找显示器的EDID数据。 它位于HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ DISPLAY \ … \ Device参数

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

这DisplayDetails.GetMonitorDetails()代码为我工作的很好。 我在测试中发现戴尔显示器可靠地返回了S / N信息,但是我尝试的所有非戴尔显示器(3个其他品牌)都没有。