Einzelnen Beitrag anzeigen

Benutzerbild von MessOldie
MessOldie

Registriert seit: 1. Apr 2009
Ort: Reinsdorf OT Friedrichsgrün
12 Beiträge
 
Delphi 6 Personal
 
#11

AW: Monitornamen wie in Systemsteuerung auslesen

  Alt 27. Apr 2015, 09:38
Nachdem ich mich weiter "umgeschaut" habe, vermute ich, dass EnumDisplayDevices (im "zweiten" Aufruf) die "richtigen" Monitornamen liefert, wenn die zugehörigen Monitortreiber installiert wurden. Benutzt man die windowsinternen Treiber, so liefert EnumDisplayDevices auch nur "PnP-Monitor (Standard)" zurück und man kann die "echten" Monitornamen nur aus der Registry auslesen:
\Registry\Machine\System\CurrentControlSet\Enum\Di splay\xxx\yyy\Device Parameters\EDID
(xxx und yyy sind im zweiten Aufruf von EnumDisplayDevices in DeviceID enthalten.)


Getestet unter Delphi2007 mit zwei Monitoren:

Fehler in der Funktion "GetMonitorEDID"

Delphi-Quellcode:
    n := Pos('MONITOR\', s);
    if n <> 1 then
      raise Exception.Create('DeviceID?'); // ==> finally
Es wird immer die Exception ausgelöst, da
Code:
Pos('MONITOR\', s);
0 zurück gibt.
Die Zeile muss geändert werden in
n := Pos('MONITOR\', Uppercase(s)); Bitte entschuldigt...
Gottfried Pilz
Man kann immer noch dazulernen
  Mit Zitat antworten Zitat