Moin Zusammen,
nur um die Begrifflichkeit zu korrigieren:
Wenn, dann geht es mit DDC nicht
DDE.
Der einfachste Weg die Seriennummer des Monitores herauszubekommen geht über die Registry.
Im Key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\D ISPLAY findet man alle möglichen Monitore, die dem System mal bekannt waren.
Innerhalb dieser Keys gibt es dann noch eine weitere Ebene, in der die Keys ähnlich aussehen wie 6&471624d7&0&11443344&01&00, und unterhalb dieser Keys wiederum gibt es den Key namenes "Device Parameters", in dem sich der Wert EDID befindet, ein Binärwert.
An Offset $48 (also 72 dezimal) beginnt ein Block der sich aus vier Werten zusammensetzt.
Aufbau
Kennung DWORD
Inhalt Array [1..14] of Byte
Kennung DWORD
Inhalt Array [1..14] of Byte
Kennung DWORD
Inhalt Array [1..14] of Byte
Kennung DWORD
Inhalt Array [1..14] of Byte
Das erste Byte des Inhaltes ist bei den in Frage kommenden Einträgen immer 00
Als Kennungen gibt es:
000000FF => Seriennummer
000000FE => Hersteller
000000FC => Modellbezeichnung
Bei diesen drei Kennungen handelt es sich dann um Klartext. Dieser ist mit Blanks auf 13 Byte aufgefüllt.
Die Reihenfolge liegt nicht fest, und die Angaben sind optional, was sogar zur Folge haben kann, dass man eine bestimmte Kennung mehrfach vorfindet, oder eben auch gar nicht.
Wenn sich parallel zum Key "Device Parameters" noch der Key "Control" befindet so hat man den Key erwischt, der aktuell gültige Daten für EDID enthält.
[EDIT]
Der aufwändigere, dafür aber sauberere Weg (da man nicht selber suchen muss
) führt über die SetupApi.
[/EDIT]