Einzelnen Beitrag anzeigen

Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#10

Re: Name der Grafikkarte auslesen, wie?

  Alt 1. Feb 2004, 12:40
Hey das hat mir echt weiter geholfen mit der Class danke! Ich hab den Code jetzt so umgeschrieben, dass er nur noch der 1. Ordner mit der Grafikkarte ausliest! 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! THX
Delphi-Quellcode:
procedure TForm1.FillList;
const
  RegConst : array[boolean]of string =
    ('Enum\PCI','SYSTEM\CurrentControlSet\Enum\PCI');
var
  Reg : TRegistry;
  RegEntries,
  EntryList : TStringList;
  i,
  j : Integer;
  S : String;
begin
  Reg := TRegistry.Create(KEY_READ);
  if Reg <> nil then
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;

    RegEntries := TStringList.Create;
    EntryList := TStringList.Create;

    if(RegEntries <> nil) and (EntryList <> nil) then
    try
      if Reg.OpenKeyReadOnly(RegConst[Win32Platform =
        VER_PLATFORM_WIN32_NT]) then
      try
        Reg.GetKeyNames(RegEntries);
      finally
        Reg.CloseKey;
      end;

      for i := 0 to RegEntries.Count - 1 do
      begin
        EntryList.Clear;

        if Reg.OpenKeyReadOnly(RegConst[Win32Platform =
          VER_PLATFORM_WIN32_NT] + '\' + RegEntries[i]) then
        try
          Reg.GetKeyNames(EntryList);
        finally
          Reg.CloseKey;
        end;

        for j := 0 to EntryList.Count - 1 do
          if Reg.OpenKeyReadOnly(RegConst[Win32Platform =
            VER_PLATFORM_WIN32_NT] + '\' + RegEntries[i] +
            '\' + EntryList[j]) then
          try
            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 := '';

            if(S <> '') then
            label1.caption:=S;
          finally
            Reg.CloseKey;
          end;
      end;
    finally
      EntryList.Free;
      RegEntries.Free;
    end;
  finally
     Reg.Free;
  end;
end;
Das einzigste, was Ihr jetzt braucht is ein Label(label1) und in Form1.create muss stehen: FillList;
Ich hoffe, dass es bei euch auch klappt. Wenn ja bitte schreiben
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat