Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Registry: Ganzen Schlüssel löschen (https://www.delphipraxis.net/96568-registry-ganzen-schluessel-loeschen.html)

Aurelius 26. Jul 2007 23:32


Registry: Ganzen Schlüssel löschen
 
Hallo DP'ler :hi:

In meinem Programm werden bestimmte Infos in einen eigenen Eintrag in der Reg gesichert. Nun möchte ich einen Button einbauen mit dem man auf Wunsch den ganzen Schlüssl löscht. Mit einzelnen Werten innerhalb eines Schlüssel bekomm ich das hin, nur den Schlüssel an sich bekomm ich net gelöscht...Bei mir siehts in etwa so aus:
Delphi-Quellcode:
uses Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('Software\', True);
    Reg.DeleteKey('NameDesSchlüssels');
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;
Kann sein dass das bei Reg.Delete...anders heißt, hab den Code grad net vor Augen. So sieht es aber in etwa aus...

Luckie 26. Jul 2007 23:51

Re: Registry: Ganzen Schlüssel löschen
 
Du solltest eventuell auch den Schlüssel öffnen, den du löschen willst. Und warum öffnest du ihn mit True? Wenn du ihn löschen willst, warum erstellst du ihn, wenn r nicht vorhanden ist?

Und wie immer einfach mal die Hilfe lesen und sich da Beispiel angucken.

Aurelius 27. Jul 2007 00:00

Re: Registry: Ganzen Schlüssel löschen
 
Mit der integrierten Delphi-Hilfe kann ich oftmals nicht viel anfangen :oops:

Kann mir vielleicht jemand ein Besipiel geben wie ich das mache? Der Schlüssel heißt

KEY_CURRENT_USER\Software\Test

Diesen will ich einfach gelöscht bekommen. Ich glaub mein Vorschlag von oben ist Schmarrn...

Luckie 27. Jul 2007 00:06

Re: Registry: Ganzen Schlüssel löschen
 
Zitat:

Zitat von xX0815Xx
Mit der integrierten Delphi-Hilfe kann ich oftmals nicht viel anfangen :oops:

Was kann man damit bitte nicht anfangen:
Zitat:

TRegistry.DeleteKey

Removes a specified key and its associated data from the registry.

function DeleteKey(const Key: String): Boolean;

Description

Call DeleteKey to remove a specified key and its associated data, if any, from the registry.

DeleteKey returns True if key deletion is successful. On error, DeleteKey returns False.
Delphi-Quellcode:
This OnClick event handler deletes all values saved in the registry under they key named in an edit control.

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;

Aurelius 27. Jul 2007 00:28

Re: Registry: Ganzen Schlüssel löschen
 
Hab Delphi grad net on, von daher konnt ich nur vom Regelfall sprechen :pale:

Egal, danke vielmals. Mal sehen obs funktioniert... :spin:

Aurelius 27. Jul 2007 15:15

Re: Registry: Ganzen Schlüssel löschen
 
So, ich habs ausprobiert und ein Problem festgestellt.

Delphi-Quellcode:
  Reg := TRegistry.Create;
  try
    Reg.Rootkey := HKEY_CURRENT_USER;
    Reg.DeleteKey('Software\Shutdown');
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
Nur leider löscht er hierbei nur die Werte innerhalb des Schlüssels, nur net den Schlüssel an sich. Komischerweise gehts bei nem Test von mir bei einem anderen Programm einwandfrei...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz