Page 2 of 2 <12
Topic Options
#125627 - 2004-08-26 08:31 PM Re: Monitor Serial
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22346
Loc: OK
lol.
_________________________
!

download KiXnet

Top
#125628 - 2004-08-26 08:53 PM Re: Monitor Serial
ShaneEP Moderator Offline
MM club member
*****

Registered: 2002-11-29
Posts: 2125
Loc: Tulsa, OK
Its fixed...Wonder why it didnt tell me that when i had explicit turned on as well?
Top
#125629 - 2004-08-26 09:56 PM Re: Monitor Serial
Kdyer Offline
KiX Supporter
*****

Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
Shane,

This works a treat!

Thanks dude..

Richard - you should post this UDF.

I searched high and low on the Internet and nobody seemed to know how to address this problem. My hat's off to you guys. If you are ever in the Portland, OR area look me up and we can go have a microbrew!

Thanks!

Kent
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's

Top
#125630 - 2004-08-26 11:08 PM Re: Monitor Serial
Allen Administrator Online   shocked
KiX Supporter
*****

Registered: 2003-04-19
Posts: 4546
Loc: USA
I'm not getting any results... the code returns @error=0 but no serial number or model number.

I only have one EDID value in the registry and its value is:

Code:
 00ffffffffffff005a634a4b783b0000180701000f201899e80489a0574a9b2612484c246700818f
614f614a494f454f314f31403140bc34009851002a40109013001ee51000001e401f003041002430
206033002ce110000018c31e002041002030106013002ce11000001e4c1d00304100263018883600
2ce11000001800a20000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000




The monitor is a Viewsonic...

I'm just testing the script and have no use for this right now, but I thought I would pass this on, if anyone has any ideas.

Top
#125631 - 2004-08-27 03:29 AM Re: Monitor Serial
Allen Administrator Online   shocked
KiX Supporter
*****

Registered: 2003-04-19
Posts: 4546
Loc: USA
After reading the original webpage and notes it appears that it is possible my monitor just doesn't have this information stored, in which case it must be working as expected...

Quote:

'Another reason for reliability problems is that there is no
'requirement in the EDID spec that a manufacture include the
'serial number in the EDID data AND only EDIDv1.2 and beyond
'have a requirement that the EDID contain a descriptive
'model name
'That being said, here goes....




Top
#125632 - 2004-09-02 08:21 AM Re: Monitor Serial
mike_mcsw Offline
Lurker

Registered: 2004-09-02
Posts: 4
what is this code?? I cut and paste it with vbs extension and it gives errors...
Top
#125633 - 2004-09-02 08:31 AM Re: Monitor Serial
ShaneEP Moderator Offline
MM club member
*****

Registered: 2002-11-29
Posts: 2125
Loc: Tulsa, OK
Thats maybe because its not a VB script? Its a Kix script. Download the kix executable to run the script with.
Top
#125634 - 2004-09-02 09:13 AM Re: Monitor Serial
mike_mcsw Offline
Lurker

Registered: 2004-09-02
Posts: 4
what is with this code? with vbs extension it doesn't like $, ;, or@

whats up?

Top
#125635 - 2004-09-02 09:40 AM Re: Monitor Serial
mike_mcsw Offline
Lurker

Registered: 2004-09-02
Posts: 4
ok, thanks...i downloaded the kixstart executable and installed in c:\kix

i then pasted the script as monitor.kix and copied it to the same directory

i then run "c:\kix\kix32.exe monitor.kix" and nothing happens? is it supposed to copy a text file somewhere?

I also tried wkix32.exe with no results as well???

Top
#125636 - 2004-09-02 10:17 AM Re: Monitor Serial
Richard H. Administrator Offline
Administrator
*****

Registered: 2000-01-24
Posts: 4946
Loc: Leatherhead, Surrey, UK
If your monitor (and/or graphics card) is not EDID compliant then it will not return the information, so nothing will be displayed.

To confirm this you can check the registry information manually.

Warning! Mucking about in the registry can really bugger your operating system up - only do this if you fully understand the implications!

Ok, start regedit and navigate to registry key "HKLM\SYSTEM\CurrentControlSet\Enum\Display"

In this key you will find a number of subkeys, which represent graphics cards, drivers, monitors and other display devices.
  • Look through each subkey, and you will see a key with a hexadecimal garbage string - possibly an internal resource id, but don't quote me on that.
  • Look in this key for a DeviceID. If the DeviceID string starts with "Monitor\" then the entry is a monitor. "Class" is also set to Monitor.
  • Now look for a subkey called "Control". I use this to identfy the active monitor - I have no idea if this is a valid test, but it works for me. If it doesn't have the "Control" subkey the script ignores it.
  • Finally, look in the "Device Parameters" subkey. This should have an entry "EDID", which is the response from the monitor. This is a binary block with the data encoded in it.

The script is an example of parsing this block which may not work for everyone. Specifically I assume that there is only ever a single "garbage" subkey, however this is not necessarily the case.

If you find that the script is not displaying data when it should, post the details and I'll see if we can get it working for you.


Top
#125637 - 2004-09-02 10:29 AM Re: Monitor Serial
mike_mcsw Offline
Lurker

Registered: 2004-09-02
Posts: 4
yes, it is in the registry, and the vbscript that someone else posted "almost" worked, which is why i was hoping i could get this to work. but this one just opens a black window and sits there...if i press the space bar the window closes, but nothing is output. the vbscript does report a monitor, but I need to report more than one monitor, but this kixstart script doesn't do anything?
Top
#125638 - 2004-09-02 10:41 AM Re: Monitor Serial
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11624
Loc: CA
go to the GUI for Advanced and see if it knows what the monitor model is. If it does not know then it is not in the registry.

Please export the key from the registry and post here on the board. I have tested this code on a few systems and it works fine for those that have the data in the registry as described here in this posting.

Top
#125639 - 2004-09-02 10:42 AM Re: Monitor Serial
Richard H. Administrator Offline
Administrator
*****

Registered: 2000-01-24
Posts: 4946
Loc: Leatherhead, Surrey, UK
Quote:

yes, it is in the registry



LOL

You'll have to provide more info than that - good looking intelligent and witty I am, omniscient I'm not

I'll knock up a debug version which will dump status information while it is working, but if you can post a text dump of the registry key it would help a lot.

Post any information that you think might be useful, especially if you think you know why it might be failing considering the check list I gave you in the last post.

Top
#125640 - 2004-09-06 12:37 PM Re: Monitor Serial
Richard H. Administrator Offline
Administrator
*****

Registered: 2000-01-24
Posts: 4946
Loc: Leatherhead, Surrey, UK
As promised, a version which dumps debug information as it is working.

Set "$VERBOSE" to zero at the top of the script to switch the debug info off.

See later post for updated code.


Edited by Richard H. (2004-09-07 11:55 AM)

Top
#125641 - 2004-09-06 08:13 PM Re: Monitor Serial
ShaneEP Moderator Offline
MM club member
*****

Registered: 2002-11-29
Posts: 2125
Loc: Tulsa, OK
Only problem i see Richard is that there are multiple sub-keys on some that have the Control key so that is not a valid check to get correct device. Or maybe that is just on laptops. But on mine there are 3 subkeys, all have control, but only one returns a model. Using the WMI like i did in previous posts doesnt always bring back the key with the model in it either. So Im not sure if there is any way to be sure which key to retrieve info from.
Top
#125642 - 2004-09-06 09:52 PM Re: Monitor Serial
kholm Offline
Korg Regular
*****

Registered: 2000-06-19
Posts: 714
Loc: Randers, Denmark
Thank's guys

I have been looking for a way to retrieve the Monitor model/serielnumber for quite some time.

I have made a small ajust on Shanes script and made it part of my logonscript's collecting hardwareinfo.
This seems to work 99 %

All my IBM-monitors report both model and sernum.
Many others also reports both.
A few only reports model (Sernum is not required in EDID)

The sad thing is that some workstations reports nothing. (Could be that they don't conform to the VESA/EDID standard ???)

I will have a closer look on the non-reporting systems later, to see if the info is burried somewhere else in: CurrentControlSet\Enum\Display

OS: mostly XP a few 2K (Stil about 200 9x/Me, where this script wont work)

Anyway, since this is not a 100% solution you wil stil have to record the data manually.

-Erik

Top
#125643 - 2004-09-07 01:30 AM Re: Monitor Serial
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11624
Loc: CA
Well now that the monitor is below $500 it is not a Capital expense for us anymore, so don't have to record it anymore.
But nice to have a script that does retrieve it most of the time.

Top
#125644 - 2004-09-07 10:05 AM Re: Monitor Serial
Richard H. Administrator Offline
Administrator
*****

Registered: 2000-01-24
Posts: 4946
Loc: Leatherhead, Surrey, UK
I don't have a real use for this script, so I will not be spending any real time on adding features or fixing it to work with other versions of EDID.

If anyone determines a better test for the "active" monitor, let me know and I'll add it.

If anyone determines a bug in the code, let me know and I'll fix it.

If anyone want support for other versions of EDID (these fields are defined in version 1.3) then you are on your own

Quote:

I will have a closer look on the non-reporting systems later, to see if the info is burried somewhere else in: CurrentControlSet\Enum\Display



Erik, run the debug version (posted above). It should be immediately obvious where the problem is.

I don't have the info for EDID 2.0, which I guess more recent monitors may support - if anyone has the specifications let me know and I'll have another look.

If you are interested in the documentation you can get the publicly available documents here: http://www.vesa.org/public

I guess you need to pay for the later versions

You will find that older versions of EDID stored a 32 bit serial number at 0x0C - 0x0F - I'll see if I can grab anything sensible from here.

Top
#125645 - 2004-09-07 11:52 AM Re: Monitor Serial
Richard H. Administrator Offline
Administrator
*****

Registered: 2000-01-24
Posts: 4946
Loc: Leatherhead, Surrey, UK
Updated.

  • Checks that the EDID block is valid.
  • Displays the EDID version info if debugging is switched on.
  • Displays the week and year of manufacture.
  • Displays the 1.2 serials number - YMMV but this is a garbage value for me.


Code:
; Return monitor info.

Break ON

$=SetOption("Explicit","ON")
$=SetOption("WrapAtEOL","ON")
$=SetOption("ASCII","ON")

GLOBAL $VERBOSE

$VERBOSE=1 ; Set to "0" to disable debug info

Dim $KEY_DISPLAY
Dim $iIndexPri,$iIndexSub
Dim $sMonitor,$sDevice

$KEY_DISPLAY="HKLM\SYSTEM\CurrentControlSet\Enum\Display"

; Iterate through possible displays.
Log("Starting scan for monitor info...")
$iIndexPri=0
$sMonitor=EnumKey($KEY_DISPLAY,$iIndexPri)
While Not @ERROR
$sMonitor=$KEY_DISPLAY+"\"+$sMonitor
Log("--------------------------------------------")
Log("Primary key is '"+$sMonitor+"'")
$iIndexSub=0
$sDevice=EnumKey($sMonitor,$iIndexSub)
while Not @ERROR
$sDevice=$sMonitor+"\"+$sDevice
Log(" Secondary key is '"+$sDevice+"'")
If KeyExist($sDevice+"\Control")
Log(" Control found - device assumed to be active")
If Instr(ReadValue($sDevice,"HardwareID"),"Monitor\")=1
Log(" Device type is monitor.")
ParseEDID(ReadValue($sDevice+"\Device Parameters","EDID"))
Else
Log(" Device type is not monitor.")
EndIf
Else
Log(" Control not found - device assumed to be inactive")
EndIf
$iIndexSub=$iIndexSub+1
$sDevice=EnumKey($sMonitor,$iIndexSub)
Loop
$iIndexPri=$iIndexPri+1
$sMonitor=EnumKey($KEY_DISPLAY,$iIndexPri)
Loop

Log("Completed scan for monitor info.")
Exit 0

Function ParseEDID($sEDID)
Dim $iOffset, $sBlock
If $sEDID=""
Log(" No EDID information associated with device")
Exit 0
EndIf
; Check for valid EDID data
If SubStr($sEDID,1,16)="00ffffffffffff00"
Log(" EDID signature is valid")
Else
Log(" EDID signature is invalid: "+SubStr($sEDID,1,16))
Exit 0
EndIf
Log(" "+$sEDID)
Log(" EDID Version number is "
+Execute("Exit &"+SubStr($sEDID,(&12+1)*2-1,2))
+"."
+Execute("Exit &"+SubStr($sEDID,(&13+1)*2-1,2)))
; Look for serial number and model number in descriptor blocks.
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)) ?
Case "Unknown type"
Log(" Unknown type: "+Left($sBlock,8))
EndSelect
Next
"EDID 1.2 Serial number: "+Execute("Exit &"+SubStr($sEDID,(&1C+1)*2-1,8))+@CRLF
" Week of manufacture: "+Execute("Exit &"+SubStr($sEDID,(&10+1)*2-1,2))+@CRLF
" Year of manufacture: "+(1990+Execute("Exit &"+SubStr($sEDID,(&11+1)*2-1,2)))+@CRLF
EndFunction

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

Function Log($s)
If $VERBOSE @DATE+" "+@TIME+" "+$s+@CRLF EndIf
Exit 0
EndFunction


Top
#125646 - 2005-07-12 08:20 PM Re: Monitor Serial
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11624
Loc: CA
Richard,

If you get bored, or free time on your hands, maybe you could take a look at this product and see if you can refine your script output/details some.

Phoenix EDID Designer 1.31
 

Top
Page 2 of 2 <12


Moderator:  Arend_, Allen, Jochen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Mart 
Hop to:
Shout Box

Who's Online
0 registered and 352 anonymous users online.
Newest Members
SERoyalty, mytar, Gabriel, Alex_Evos, Dansen
17869 Registered Users

Generated in 0.077 seconds in which 0.028 seconds were spent on a total of 15 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org