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') = 'Display' then 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!