![]() |
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:
Kann sein dass das bei Reg.Delete...anders heißt, hab den Code grad net vor Augen. So sieht es aber in etwa aus...
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; |
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. |
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... |
Re: Registry: Ganzen Schlüssel löschen
Zitat:
Zitat:
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; |
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: |
Re: Registry: Ganzen Schlüssel löschen
So, ich habs ausprobiert und ein Problem festgestellt.
Delphi-Quellcode:
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...
Reg := TRegistry.Create;
try Reg.Rootkey := HKEY_CURRENT_USER; Reg.DeleteKey('Software\Shutdown'); Reg.CloseKey; finally Reg.Free; end; |
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