23. april 2006 - 19:46
Der er
3 kommentarer og
1 løsning
Finde sti i registry
Hvis jeg har en "tilfældig" nøgle i registry, og ønsker at se hele "stien" til denne nøgle, hvordan får jeg så denne frem ??
23. april 2006 - 20:32
#1
nederste linie i regedit, der står den fulde sti, til den nøgle du har markeret
23. april 2006 - 21:54
#3
jeg bruger denne til at finde frem til dataene, men vil gerne have skrevet stien i memo1 på hver enkelt nøgle der bliver fundet ??
procedure TForm1.Button1Click(Sender: TObject);
var
indent: Integer;
typename, Dataen, noegleNavn, NoegleSti : string;
procedure EnumAllKeys(hkey: THandle);
var
l: TStringList;
n,i: Integer;
begin
Inc(indent, 2);
with TRegistry.Create do
try
RootKey := hkey;
OpenKey(EmptyStr, False);
l := TStringList.Create;
try
begin
GetKeynames(l);
CloseKey;
end;
for n := 0 to l.Count - 1 do
begin
if OpenKey(l[n], False) then
begin
typename := ReadString('');
noegleNavn := (l[n]);
CloseKey;
end;
Dataen := Format(' %s',[typename]);
If dataen = ' ' then
Dataen := '(Værdien er ikke defineret)';
if LowerCase(TrimLeft(noegleNavn)) = LowerCase(TrimLeft(Edit1.Text)) then
begin
{denne herunder fungerer ikke
Noeglestiskal være stien til den aktuelle key
}
//NoegleSti := NoegleSti + '/' + noegleNavn;
//ShowMessage(NoegleSti);
memo1.Lines.Add(NoegleSti + ' --> ' + Dataen );
NoegleSti := '';
end;
if OpenKey(l[n], False) then
begin
EnumAllKeys(CurrentKey);
CloseKey;
end;
end;
finally
l.Free
end;
finally
Free;
end;
Dec(indent, 2);
end;
begin
Memo1.Clear;
//Memo1.Lines.Add('Keys under HKEY_CURRENT_USER');
indent := 0;
Memo1.Lines.BeginUpdate;
try
EnumAllKEys(HKEY_CURRENT_USER);
//EnumAllKEys(HKEY_CLASSES_ROOT);
finally
Memo1.Lines.EndUpdate;
end;
end;
end.