vc检测显示器的信息
2017-08-09 11:24
477 查看
项目里面使用的是wmi获取的显示器的信息,但是内容太少了:
这里检测到一个例子是:
<DisplayDevices>
<DisplayDevice Name="通用即插即用监视器" Description="通用即插即用监视器" Status="OK" ServicePackInEffect="" InstalledOn="" InstalledBy="" FixComments="" CSName="" InstallDate="" MonitorManufacturer="(标准监视器类型)"/></DisplayDevices>
但是我的机子是连接了两台显示器,进行扩展使用的。检测到信息不足,而且数量也不对。所以还需要探索其他。
注意到有从注册表读取信息进行检测的方法。这里先列一个工具SoftMCCS,可以搜索下载后看一下信息。
关于注册表获取显示器的方法:
调研文章如下:
http://www.cnblogs.com/daxingxing/p/3604594.html
总结来说:
就是在:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY可以查看到显示的信息,我查看了,所用的显示器都列了出来,
去除Default_Monitor(HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\Default_Monitor)该项外,其他的两项就是
两个显示器的信息。
这里需要进一步解析 EDID 在我的机子里面是在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\ACR040C\4&287db7d9&0&UID200195\Device
Parameters的下面
EDID的值里面存储。
可以解析到:
EDID
由128个字节组成,大致划分如下
0-7 :头信息 ,8个字节,由00 FF FF FF FF FF FF 00 组成
8-9:厂商ID
10-11: 产品ID
12-15:32-bit序列号
16-17 :制造日期
18-19 : EDID 版本
20-24 : 显示器的基本信息(电源,最大高度,宽度)
25-34 : 显示器的颜色特征
35-37 : 显示器的基本时序,定时 ,分辨率
38-53 : 显示器的标准时序及定时
54-125: 显示器的详细时序及定时
126: 扩展标志位,EDID-1.3版本需要忽略,设置为0
127: 求和验证值
具体的内容请看原文。
------------------------------------------------------------------------------------------------------
另外的调研资料
通过EDID信息,获取电脑显示器序列号
http://blog.csdn.net/mimi00x/article/details/39997257
DDC
EDID 介绍
http://blog.csdn.net/hello_wyq/article/details/1337754
另外有从驱动里面获取EDID信息的,我对驱动几乎不涉及,所以就不深入这一方法了。
http://blog.csdn.net/u014276460/article/details/46754451
http://blog.csdn.net/tody_guo/article/details/5901870
这里检测到一个例子是:
<DisplayDevices>
<DisplayDevice Name="通用即插即用监视器" Description="通用即插即用监视器" Status="OK" ServicePackInEffect="" InstalledOn="" InstalledBy="" FixComments="" CSName="" InstallDate="" MonitorManufacturer="(标准监视器类型)"/></DisplayDevices>
但是我的机子是连接了两台显示器,进行扩展使用的。检测到信息不足,而且数量也不对。所以还需要探索其他。
注意到有从注册表读取信息进行检测的方法。这里先列一个工具SoftMCCS,可以搜索下载后看一下信息。
关于注册表获取显示器的方法:
调研文章如下:
获取显示器信息:厂商、品牌等
http://www.cnblogs.com/daxingxing/p/3604594.html总结来说:
就是在:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY可以查看到显示的信息,我查看了,所用的显示器都列了出来,
去除Default_Monitor(HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\Default_Monitor)该项外,其他的两项就是
两个显示器的信息。
这里需要进一步解析 EDID 在我的机子里面是在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\ACR040C\4&287db7d9&0&UID200195\Device
Parameters的下面
EDID的值里面存储。
可以解析到:
EDID
由128个字节组成,大致划分如下
0-7 :头信息 ,8个字节,由00 FF FF FF FF FF FF 00 组成
8-9:厂商ID
10-11: 产品ID
12-15:32-bit序列号
16-17 :制造日期
18-19 : EDID 版本
20-24 : 显示器的基本信息(电源,最大高度,宽度)
25-34 : 显示器的颜色特征
35-37 : 显示器的基本时序,定时 ,分辨率
38-53 : 显示器的标准时序及定时
54-125: 显示器的详细时序及定时
126: 扩展标志位,EDID-1.3版本需要忽略,设置为0
127: 求和验证值
具体的内容请看原文。
------------------------------------------------------------------------------------------------------
另外的调研资料
通过EDID信息,获取电脑显示器序列号
http://blog.csdn.net/mimi00x/article/details/39997257
DDC
EDID 介绍
http://blog.csdn.net/hello_wyq/article/details/1337754
另外有从驱动里面获取EDID信息的,我对驱动几乎不涉及,所以就不深入这一方法了。
Windows显示驱动中读取EDID
http://blog.csdn.net/u014276460/article/details/46754451http://blog.csdn.net/tody_guo/article/details/5901870
相关文章推荐
- Windows 下编程检测显示器信息及插拔
- 显示器的信息检测
- VC使用CRT调试功能来检测内存泄漏
- VC打开工程时说不能载入ClassView信息文件(Cannot access the ClassView information file.ClassView information will n)
- VC 检测程序内存泄露的CMemoryState类
- VC++实现获取进程端口检测木马
- 如何在VC下检测当前存在的串口及串口热拔插
- 如何检测VC运行库是否安装
- VC环境下无法看到类的信息的问题 转帖
- CPUID——检测CUP信息及程序的实现
- 检测浏览器信息
- as3中检测客户端的环境信息如是否有音视频,操作系统类型等等
- 常见的20种VC++编译错误信息集合
- VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏
- 检测http中的REFERER信息,实现 防盗链
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
- Javascript检测客户端分辨率,操作系统,浏览器,屏幕色彩信息
- centos7 内存硬件信息检测
- 一段可以【检测设备终端】和【挖掘url中广告信息】的代码
- JavaScript 实例:检测浏览器版本及更多信息