zoukankan      html  css  js  c++  java
  • 获取显示器信息:厂商、品牌等

    wmi可以获取基本的一些信息,但是厂商品牌等好像获取不到:

    On Error Resume Next
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\" & strComputer & "
    ootcimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor",,48)
    For Each objItem in colItems
        Wscript.Echo "Availability: " & objItem.Availability
        Wscript.Echo "Band " & 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: DISPLAYDELD0365&60ECEDB&0&UID1048833
    ---------------------------

    可见wmi的信息不足够,获取厂商和品牌等信息可以通过EDID来获取,这个信息在注册表:

    HKEY_LOCAL_MACHINESYSTEMControlSet001EnumDISPLAYDELD0365&60ecedb&0&UID1048833Device 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: 求和验证值

     获取信息如:

  • 相关阅读:
    构造方法中使用this的含义
    Android Bundle类
    Android中使用PULL方式解析XML文件
    Android 创建与解析XML(四)—— Pull方式
    File的getPath()和getAbsolutePath()和getCanonicalPath()的区别
    Android-取出SDcard卡下指定后缀名的文件
    page、request、session和application有什么区别?
    prepareStatement的用法和解释
    pageContext对象的用法
    使用JSP连接MySql数据库读取HTML表单数据进行存贮
  • 原文地址:https://www.cnblogs.com/daxingxing/p/3604594.html
Copyright © 2011-2022 走看看