AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry - Files lesen und löschen

Ein Thema von toredo · begonnen am 20. Jul 2006 · letzter Beitrag vom 20. Jul 2006
Antwort Antwort
toredo

Registriert seit: 6. Apr 2006
Ort: Oberriet
210 Beiträge
 
Delphi 7 Enterprise
 
#1

Registry - Files lesen und löschen

  Alt 20. Jul 2006, 11:17
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


mfG toredo
Benj Meier
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Registry - Files lesen und löschen

  Alt 20. Jul 2006, 13:28
Hallo,

alle Werte eines Schlüssels kannst du so löschen:

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
toredo

Registriert seit: 6. Apr 2006
Ort: Oberriet
210 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Registry - Files lesen und löschen

  Alt 20. Jul 2006, 13:36
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
Benj Meier
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Registry - Files lesen und löschen

  Alt 20. Jul 2006, 13:49
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:
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;
marabu
  Mit Zitat antworten Zitat
toredo

Registriert seit: 6. Apr 2006
Ort: Oberriet
210 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Registry - Files lesen und löschen

  Alt 20. Jul 2006, 14:14
vielen dank, jetzt funzt es perfekt



mfG toredo
Benj Meier
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz