Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#11

Re: Name der Grafikkarte auslesen, wie?

  Alt 1. Feb 2004, 15:48
Zitat von Delphi-Noobie:
Ich hoffe, dass es so richtig ist und würde mich freuen, wenn ihr den Code auch mal ausprobiert und sagt ob nur die Grafikkarte angezeigt wird!
Bei dem Durcheinander, das du angerichtet hast, wär´s ein Wunder:
Zitat:
Delphi-Quellcode:
            if Reg.ValueExists('FriendlyName') then
              S := Reg.ReadString('FriendlyName')
              else if reg.ReadString('Class') = 'Displaythen begin //<- Display wegen Grafikkarte
                   if reg.ValueExists('ParentIDPrefix') then begin //<- Das war bei mir nur im
            if Reg.ValueExists('DeviceDesc') then // 1. ordner vorhanden, deswegen
              S := Reg.ReadString('DeviceDesc') // hab ich es hier eingebaut
              end
              end
            else
              S := '';


Warum hast du das nicht so gelassen wie es vorher war? Ich fürchte, den Sinn dieser Zeilen hast du nämlich nicht verstanden. Der Code vom Alten Mann ging von folgenden Bedingungen aus:
Zitat:
Den Eintrag mit dem Namen "FriendlyName" lesen. Wenn das Ergebnis ein Leerstring ist (weil der Eintrag vielleicht nicht existiert!), dann den Eintrag "DeviceDesc" lesen.
Schau dir seinen Code noch mal an!
Zitat von Alter Mann:
Delphi-Quellcode:
                      S := Items.ReadString('FriendlyName');
                      if S = 'then
                      S := Items.ReadString('DeviceDesc');
                      if ListBox1.Items.IndexOf(S) = -1 then ListBox1.Items.Add(S);
Ich hab´s bei mir nur so geändert, dass geprüft wird, ob der jeweilige Eintrag vorhanden ist, und abhängig davon wird er dann ausgelesen:
Delphi-Quellcode:
// existiert "FriendlyName"?
if Reg.ValueExists('FriendlyName') then
  // Ja, dann lesen
  S := Reg.ReadString('FriendlyName')
// bzw. existiert "DeviceDesc"?
else if Reg.ValueExists('DeviceDesc') then
  // Ja, dann eben den auslesen
  S := Reg.ReadString('DeviceDesc')
// nix davon ist da, so ein Sch***
else
  S := '';
Und nur wenn die Stringvariable also etwas enthält, wird der Wert in die Listbox eingetragen.

Da du es jetzt auf Grafikkarten abgesehen hast, fragst du vor dem Eintragen in die Listbox (oder wohin auch immer) ab, ob der "Class"-Eintrag den Wert "DISPLAY" enthält. Die Prüfung von "ParentIDPrefix" würde ich lassen, den Eintrag gibt´s bei mir bspw. nicht - jedenfalls nicht im Schlüssel meiner GraKa.
Bei mir wird der Wert "DISPLAY" übrigens groß geschrieben. Du solltest also beim Auslesen und Prüfen des Wertes dafür sorgen, dass die Schreibweise nicht berücksichtigt wird.
  Mit Zitat antworten Zitat