qw5838132 发表于 2021-11-26 00:38:56

怎么获取显示器的型号【已解决】

本帖最后由 qw5838132 于 2021-11-26 15:36 编辑

找了几遍论坛都找不到相应的帖子,要不就是显示不出来显示器型号,只能显示分辨率之类的。麻烦大神指点指点,感谢~

rockkey 发表于 2021-11-26 09:48:10

你这是提问···还是展示····

qw5838132 发表于 2021-11-26 09:50:29

rockkey 发表于 2021-11-26 09:48
你这是提问···还是展示····

提问,有没有函数能显示显示器型号的,要做个资产管理软件

chzj589 发表于 2021-11-26 10:05:27

qw5838132 发表于 2021-11-26 09:50
提问,有没有函数能显示显示器型号的,要做个资产管理软件

提问还要付钱才能浏览?

qw5838132 发表于 2021-11-26 10:16:09

chzj589 发表于 2021-11-26 10:05
提问还要付钱才能浏览?

不好意思,搞错了,我是想付费让人帮忙回答的,已经改了

afan 发表于 2021-11-26 12:02:38

WMI 试过吗
Local $oItems = ObjGet('winmgmts:\\.\root\cimv2').ExecQuery('SELECT * FROM Win32_DesktopMonitor')
For $Info In $oItems
        Exit MsgBox(0, '', $Info.PNPDeviceID)
Next

qw5838132 发表于 2021-11-26 14:01:32

afan 发表于 2021-11-26 12:02
WMI 试过吗

试过了,查看过你以前的代码,获取到的是DISPLAY\DELA1C4\5&14CFF2D7&0&UID4354实际我的显示器型号是dell p2422h   

afan 发表于 2021-11-26 14:12:28

qw5838132 发表于 2021-11-26 14:01
试过了,查看过你以前的代码,获取到的是DISPLAY\DELA1C4\5&14CFF2D7&0&UID4354实际我的显示器型号是 ...

你应该把你试过的代码贴出来,就不会耽误别人的时间了。

qw5838132 发表于 2021-11-26 14:30:46

afan 发表于 2021-11-26 14:12
你应该把你试过的代码贴出来,就不会耽误别人的时间了。
#include <Array.au3>

_ArrayDisplay(XsqInfo(), '显示器信息')

Func XsqInfo()
      ;调用WMI查看显示器信息。为获得详实信息请确定已安装过显示器驱动。
      ;(Afan--http://www.autoitx.com/?fromuid=7644923)
      Local $xsInfo =
      $objWMIService = ObjGet("winmgmts:\\.\root\cimv2")
      $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DesktopMonitor")
      For $Info In $colItems
                $xsInfo = $Info.Availability
                $xsInfo = $Info.Caption
                $xsInfo = $Info.ConfigManagerErrorCode
                $xsInfo = $Info.ConfigManagerUserConfig
                $xsInfo = $Info.CreationClassName
                $xsInfo = $Info.Description
                $xsInfo = $Info.DeviceID
                $xsInfo = $Info.MonitorManufacturer
                $xsInfo = $Info.MonitorType
                $xsInfo = $Info.Name
                $xsInfo = $Info.PixelsPerXLogicalInch
                $xsInfo = $Info.PixelsPerYLogicalInch
                $xsInfo = $Info.PNPDeviceID
                $xsInfo = $Info.ScreenHeight
                $xsInfo = $Info.ScreenWidth
                $xsInfo = $Info.Status
                $xsInfo = $Info.SystemCreationClassName
                $xsInfo = $Info.SystemName
                Return $xsInfo
      Next
EndFunc   ;==>XsqInfo


这个就是我找到你之前的代码,就是没有显示显示器型号的

afan 发表于 2021-11-26 14:38:50

qw5838132 发表于 2021-11-26 14:30
#include

_ArrayDisplay(XsqInfo(), '显示器信息')


一般注册表都有,你可以用 p2422h 搜索位置

qw5838132 发表于 2021-11-26 15:35:46

afan 发表于 2021-11-26 14:38
一般注册表都有,你可以用 p2422h 搜索位置

确实可以,谢谢你

qw5838132 发表于 2021-11-28 00:51:17

把代码贴出来,给有需要的人
#include <MsgBoxConstants.au3>
#include <String.au3>

If StringInStr(@OSArch, '64') Then
   $sREG = 'HKLM64\SYSTEM\CurrentControlSet\Enum\DISPLAY'
Else
   $sREG = 'HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY'
EndIf
Local $i = 1, $sKEY = -1
Do
        $sKEY = RegEnumKey($sREG, $i)
        $i += 1
        $path = $sREG & '\' & $sKEY
        if StringInStr($path,'Default_Monitor') Then

        Else
                $sKEY1 = RegEnumKey($path, 1)
                $path1 = $path & '\' & $sKEY1
                $path2 = $path1&'\'&'Device Parameters'
                $data5 = RegRead($path2, "EDID")
                If $data5 <>'' Then
                        $sString = StringMid($data5, 193, 22)
                        $sString = _HexToString($sString)
                        MsgBox($MB_SYSTEMMODAL, "12345", $sString)
                EndIf
        EndIf
Until $sKEY == ''

qw5838132 发表于 2021-11-28 00:51:47

把代码贴出来,给有需要的人
#include <MsgBoxConstants.au3>
#include <String.au3>

If StringInStr(@OSArch, '64') Then
   $sREG = 'HKLM64\SYSTEM\CurrentControlSet\Enum\DISPLAY'
Else
   $sREG = 'HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY'
EndIf
Local $i = 1, $sKEY = -1
Do
        $sKEY = RegEnumKey($sREG, $i)
        $i += 1
        $path = $sREG & '\' & $sKEY
        if StringInStr($path,'Default_Monitor') Then

        Else
                $sKEY1 = RegEnumKey($path, 1)
                $path1 = $path & '\' & $sKEY1
                $path2 = $path1&'\'&'Device Parameters'
                $data5 = RegRead($path2, "EDID")
                If $data5 <>'' Then
                        $sString = StringMid($data5, 193, 22)
                        $sString = _HexToString($sString)
                        MsgBox($MB_SYSTEMMODAL, "12345", $sString)
                EndIf
        EndIf
Until $sKEY == ''
页: [1]
查看完整版本: 怎么获取显示器的型号【已解决】