Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#14

Re: Name der Grafikkarte auslesen, wie?

  Alt 1. Feb 2004, 17:31
Zitat:
Wieso is denn der Code Müll?
Ich rück´s mal ein, dann siehst du das Problem:
Delphi-Quellcode:
if Reg.ValueExists('FriendlyName') then
  S := Reg.ReadString('FriendlyName')

else if reg.ReadString('Class') = 'Displaythen
begin
  if reg.ValueExists('ParentIDPrefix') then
  begin
    if Reg.ValueExists('DeviceDesc') then
      S := Reg.ReadString('DeviceDesc')
  end
end

else
  S := '';
Auf einigen Systemen (Win XP, IMHO) gibt es den Eintrag "FriendlyName", der meiner Meinung nach aber mit "DeviceDesc" (Device Description) identisch sein müsste. Solange der Eintrag nicht vorhanden ist, solange funktioniert deine Idee von oben. Ist er allerdings da, dann wird er auf Grund dieser Bedingung
Delphi-Quellcode:
if Reg.ValueExists('FriendlyName') then
  S := Reg.ReadString('FriendlyName')

else
auch ausgelesen, und alles nach dem "else" spielt keine Rolle mehr! Nun weiß ich nicht, wann "FriendlyName" vorhanden ist und wann nicht. Es wäre aber durchaus denkbar, dass er auch mal von einem GraKa-Treiber eingetragen wird.

Mit solchen Möglichkeiten musst du rechnen, um so viele Problemfälle wie möglich abzufangen. Dass es bei dir funktioniert, bedeutet nicht, dass es auch auf einem anderen System so sein muss. Aus dem Grund würde ich das Auslesen von "FriendlyName" bzw. "DeviceDesc" so lassen, wie es ursprünglich in meinem Code stand, und dann das Zuweisen an das Label vom Vorhandensein der "Display"-Klasse abhängig machen - in der Form wie das FriFra schon angedeutet hat:
Delphi-Quellcode:
if(Reg.ValueExists('Class')) and
  (CompareText(Reg.ReadString('Class'),'Display') = 0) and
  (S <> '') then
Label1.Caption := S;
  Mit Zitat antworten Zitat