![]() |
Registry - Files lesen und löschen
hay,
ich hab schön gemütlich an einem prog geschrieben und dann auf einmal kam ich nicht mehr weiter: ich muss es hinbringen, dass es bei einem pfad in der registry alle zeichenfolgen liest, also nur die namen, und dann bestimmte löscht. wenn es einfacher ist, dann ginge es auch wenn alle zeichenfolgen in dem pfad gelöscht werden. ich habe auch schon ne procedur gefunden mit der man einfach files in der registry löschen kann, aber da muss man den Namen der Zeichenfolge angeben, damit diese Zeichenfolge dann gelöscht werden kann. Und wenn man * reinschreibt, dann wird gar nichts gelöscht... ich hoffe jemand kann mir helfen :-D mfG toredo |
Re: Registry - Files lesen und löschen
Hallo,
alle Werte eines Schlüssels kannst du so löschen:
Delphi-Quellcode:
Grüße vom marabu
uses
Registry; procedure DeleteValues(hive: Cardinal; const key: String); var i: Integer; s: TStrings; begin with TRegistry.Create do begin RootKey := hive; if OpenKey(key, False) then begin s := TStringList.Create; GetValueNames(s); for i := 0 to Pred(s.Count) do DeleteValue(s[i]); CloseKey; s.Free; end; Free; end; end; |
Re: Registry - Files lesen und löschen
kann ich da auch so ein *-zeichen einfügen, dass z.b. alle schlüssel oder wie die heissen die mit m (bsp: m*) beginnen und im selben ordner(?) liegen gelöscht werden?
ne procedur zum löschen einer solchen datei hab ich schon, aber ich muss mehrere löschen bzw. alle aus so nem ordner... sry, dass ich diese ausdrücke von der registry nicht so draufhab, ich benutz die relativ selten... mfG toredo |
Re: Registry - Files lesen und löschen
Wenn du wildcards oder reguläre Ausdrücke verarbeiten willst, dann musst du entsprechenden Code nachrüsten. Für das Löschen aller Werte mit einem bestimmten Präfix zeige ich dir die Stelle, wo er hingehört:
Delphi-Quellcode:
marabu
uses
StrUtils, Registry; procedure DeleteValues(hive: Cardinal; const key, prefix: String); var i: Integer; s: TStrings; begin with TRegistry.Create do begin RootKey := hive; if OpenKey(key, False) then begin s := TStringList.Create; GetValueNames(s); for i := 0 to Pred(s.Count) do if AnsiStartsText(prefix, s[i]) then DeleteValue(s[i]); CloseKey; s.Free; end; Free; end; end; |
Re: Registry - Files lesen und löschen
:-D vielen dank, jetzt funzt es perfekt :-D
mfG toredo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 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