怎样得到注册表下一个文件夹下的所有项

解决方案 »

  1.   


    TRegistry.GetKeyNamesTRegistry.GetValueNames
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Reg: TRegistry;
      Val:TStringList;
      I:Integer;
    begin
      Reg:=TRegistry.Create;
      try
        Val:=TStringList.Create;
        try
          Reg.RootKey:=HKey_Local_Machine; // Section to look for within the registry
          if not Reg.OpenKey(Edit1.Text,False) then
            ShowMessage('Error opening key')
          else
          begin
            Reg.GetValueNames(Val);        for I:=0 to Val.Count-1 do
            begin
              ShowMessage(Edit1.Text + Chr(13) +
                          'has an Entry Called '+Val.Strings[I]+Chr(13)+
                          'With a Value of '+Reg.ReadString(Val.Strings[I]));
            end;
            if MessageDlg('Ok to delete the key and lose all these values?'
                         ,Mtinformation,[mbYes,mbNo],0)=mryes then
               Reg.DeleteKey(Edit1.Text);      end;
        finally
          Val.Free;
        end;
      finally
        Reg.Free;
      end;
    end;