getDisplays()
Function getDisplays()
$KEY_DISPLAY="HKLM\SYSTEM\CurrentControlSet\Enum\Display"
$iIndexPri=0
$sMonitor=EnumKey($KEY_DISPLAY,$iIndexPri)
While Not @ERROR
$sMonitor=$KEY_DISPLAY+"\"+$sMonitor
$iIndexSub=0
$sDevice=EnumKey($sMonitor,$iIndexSub)
while Not @ERROR
$sDevice=$sMonitor+"\"+$sDevice
If KeyExist($sDevice+"\Control")
If Instr(ReadValue($sDevice,"HardwareID"),"Monitor\")=1
$sEDID = ReadValue($sDevice+"\Device Parameters","EDID")
If Len($sEDID) AND SubStr($sEDID,1,16)="00ffffffffffff00"
"Monitor "+(1+$iIndexSub) ?
"------------------------------" ?
For $iOffset=54 To 108 Step 18
$sBlock=SubStr($sEDID,$iOffset*2+1,18*2)
Select
Case Left($sBlock,8)="000000fc"
" Model: "
Bin2Str(SubStr($sBlock,9)) ?
Case Left($sBlock,8)="000000fe"
" Other info: "
Bin2Str(SubStr($sBlock,9)) ?
Case Left($sBlock,8)="000000ff"
"EDID 1.3 Serial number: "
Bin2Str(SubStr($sBlock,9)) ?
EndSelect
Next
"EDID 1.2 Serial number: "+Execute("Exit &"+SubStr($sEDID,(&1C+1)*2-1,8)) ?
@CRLF+@CRLF
EndIf
EndIf
EndIf
$iIndexSub=$iIndexSub+1
$sDevice=EnumKey($sMonitor,$iIndexSub)
Loop
$iIndexPri=$iIndexPri+1
$sMonitor=EnumKey($KEY_DISPLAY,$iIndexPri)
Loop
EndFunction
get $
Exit 0
Function Bin2Str($s)
Dim $c
While $s
$c=Execute("Exit &"+Left($s,2))
; Truncate string at CR
If $c=10 Exit 0 EndIf
iF $c $Bin2Str=$Bin2Str+Chr($c) EndIf
$s=SubStr($s,3)
Loop
Exit 0
EndFunction