Wow. Das einzige was falsch war, war dass ich die ganze Zeit über GetKeyNames genommen hab. Das funktioniert natürlich nciht. Danke Leute ich hab es jetzt.
Falls nachfolgende nocheinmal das Problem haben, hier mein code. (Vorhanden ist ein LiestView1 mit 3 Subitems, in denen die Registry aufgeführt werden soll.
Delphi-Quellcode:
procedure GetValues(Sender: TObject);
var
Keys: TStringList;
Reg: TRegistry;
i: Integer;
li: TListItem;
begin
Reg := TRegistry.Create(KEY_READ);
Keys := TStringList.Create;
try
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('
SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False)
then
begin
Reg.GetValueNames(Keys);
for i := 0
to Keys.Count - 1
do
begin
li := ListView1.Items.Add;
li.Caption := Keys.Strings[i];
li.ImageIndex := 1;
//li.SubItems.Add(); Hier liest man dann noch den KeyType aus. Das versuche cih auch grade noch aber ihr findet mit Sicherheit was.
li.ImageIndex := 2;
li.SubItems.Add(Reg.GetDataAsString(Keys.Strings[i]));
end;
end
else
raise Exception.Create('
Schlüssel konnte nicht geöffnet werden');
except
on E:
Exception do
ShowMessage(E.
Message);
end;
finally
Reg.Free;
Keys.Free;
end;
end;
Vielleicht postet ja noch jemand die Möglichkeit einen RegistryKey-Type als String zu bekommen.