获取显示器信息:厂商、品牌等
wmi可以获取基本的一些信息,但是厂商品牌等好像获取不到:
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor",,48) For Each objItem in colItems Wscript.Echo "Availability: " & objItem.Availability Wscript.Echo "Bandwidth: " & objItem.Bandwidth Wscript.Echo "Caption: " & objItem.Caption Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode Wscript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig Wscript.Echo "CreationClassName: " & objItem.CreationClassName Wscript.Echo "Description: " & objItem.Description Wscript.Echo "DeviceID: " & objItem.DeviceID Wscript.Echo "DisplayType: " & objItem.DisplayType Wscript.Echo "ErrorCleared: " & objItem.ErrorCleared Wscript.Echo "ErrorDescription: " & objItem.ErrorDescription Wscript.Echo "InstallDate: " & objItem.InstallDate Wscript.Echo "IsLocked: " & objItem.IsLocked Wscript.Echo "LastErrorCode: " & objItem.LastErrorCode Wscript.Echo "MonitorManufacturer: " & objItem.MonitorManufacturer Wscript.Echo "MonitorType: " & objItem.MonitorType Wscript.Echo "Name: " & objItem.Name Wscript.Echo "PixelsPerXLogicalInch: " & objItem.PixelsPerXLogicalInch Wscript.Echo "PixelsPerYLogicalInch: " & objItem.PixelsPerYLogicalInch Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID Wscript.Echo "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported Wscript.Echo "ScreenHeight: " & objItem.ScreenHeight Wscript.Echo "ScreenWidth: " & objItem.ScreenWidth Wscript.Echo "Status: " & objItem.Status Wscript.Echo "StatusInfo: " & objItem.StatusInfo Wscript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName Wscript.Echo "SystemName: " & objItem.SystemName Next
其中有一个字段PNPDeviceID倒是显示了可能的品牌:
--------------------------- Windows Script Host --------------------------- PNPDeviceID: DISPLAY\DELD036\5&60ECEDB&0&UID1048833 ---------------------------
可见wmi的信息不足够,获取厂商和品牌等信息可以通过EDID来获取,这个信息在注册表:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\DELD036\5&60ecedb&0&UID1048833\Device Parameters
EDID里。
EDID: Extended Display Identification Data(扩展显示标识数据)是一种VESA 标准数据格式,其中包含有关监视器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串。 这些信息保存在 display 节中,用来通过一个 DDC(Display Data Channel)与系统进行通信,这是在显示器和 PC 图形适配器之间进行的。最新版本的 EDID 可以在 CRT、LCD 以及将来的显示器类型中使用,这是因为 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: 求和验证值
获取信息如: