怎么获取显示器的型号【已解决】
本帖最后由 qw5838132 于 2021-11-26 15:36 编辑找了几遍论坛都找不到相应的帖子,要不就是显示不出来显示器型号,只能显示分辨率之类的。麻烦大神指点指点,感谢~
你这是提问···还是展示···· rockkey 发表于 2021-11-26 09:48
你这是提问···还是展示····
提问,有没有函数能显示显示器型号的,要做个资产管理软件 qw5838132 发表于 2021-11-26 09:50
提问,有没有函数能显示显示器型号的,要做个资产管理软件
提问还要付钱才能浏览? chzj589 发表于 2021-11-26 10:05
提问还要付钱才能浏览?
不好意思,搞错了,我是想付费让人帮忙回答的,已经改了 WMI 试过吗
Local $oItems = ObjGet('winmgmts:\\.\root\cimv2').ExecQuery('SELECT * FROM Win32_DesktopMonitor')
For $Info In $oItems
Exit MsgBox(0, '', $Info.PNPDeviceID)
Next afan 发表于 2021-11-26 12:02
WMI 试过吗
试过了,查看过你以前的代码,获取到的是DISPLAY\DELA1C4\5&14CFF2D7&0&UID4354实际我的显示器型号是dell p2422h qw5838132 发表于 2021-11-26 14:01
试过了,查看过你以前的代码,获取到的是DISPLAY\DELA1C4\5&14CFF2D7&0&UID4354实际我的显示器型号是 ...
你应该把你试过的代码贴出来,就不会耽误别人的时间了。 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
这个就是我找到你之前的代码,就是没有显示显示器型号的
qw5838132 发表于 2021-11-26 14:30
#include
_ArrayDisplay(XsqInfo(), '显示器信息')
一般注册表都有,你可以用 p2422h 搜索位置 afan 发表于 2021-11-26 14:38
一般注册表都有,你可以用 p2422h 搜索位置
确实可以,谢谢你 把代码贴出来,给有需要的人
#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 == '' 把代码贴出来,给有需要的人
#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]