如何获取显示器序列号?
有谁知道如何用 C 或 C++ 获取连接的显示器序列号?我找到了一些代码,但它们是用vbs编写的,我不明白。我需要一些用 C 或 C++ 编写的示例代码。我知道序列号是从 EDID 读取的,但不幸的是我不知道如何:(有人可以帮助我吗?
谢谢
更新:我也需要显示器类型,但这也可以从 EDID 读取
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这并不完全是您正在寻找的内容,但一个好的起点应该是 GetMonitorInfo
我认为在 msdn 页面中进行更多挖掘应该可以为您提供所需的一切。 MSDN 实际上是寻找 C/C++ Windows API 函数的好地方。
It isn't exactly what you are looking for, but a good starting point should be GetMonitorInfo
I think digging some more in the msdn pages should give you everything you need. MSDN is actually a great place to look for C/C++ Windows API functions.
这里是一个链接希望 VB 代码更具可读性。他基本上所做的就是在注册表中查找 Windows 存储显示器 EDID 数据的位置。它位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\...\DeviceParameters
在 wikipedia 文章中,您可以找到有关 EDID 格式
Here is a link to hopefully more readable VB code. What he's basically doing is looking in the registry where windows stored the EDID data of the monitor. It is located at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\...\Device Parameters
In the wikipedia article you can find information about the EDID format
此 DisplayDetails.GetMonitorDetails() 代码对我来说效果很好。我在测试中发现戴尔显示器可靠地返回了序列号信息,但我尝试过的所有非戴尔显示器(其他 3 个品牌)却没有。
This DisplayDetails.GetMonitorDetails() code worked great for me. I found in my testing that Dell monitors reliably returned S/N information, however all non-Dell displays I tried (3 other brands) did not.