Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Registry-Schlüssel löschen

  Alt 24. Aug 2004, 13:46
Für die CodeLib noch mal komplett: Denkt euch irgendeinen aussagekräftigen Titel aus, mir fällt keiner ein.

Was die Funktion macht, steht oben im ersten Post und ist, denke ich, universell einsetztbar, wenn man seine Einstellungen aus der Registry löschen will. Ich habe sie noch etwas verbessert und optimiert.

Delphi-Quellcode:
function DelRegSettings(const CompanyKey, SubKey: string): Boolean;
var
  reg: TRegistry;
  bRes: Boolean;
  sl: TStringList;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    // gibt es was zu löschen?
    bRes := reg.KeyExists(CompanyKey);
    if bRes then
    begin
      // Schlüssel öffnen
      bRes := reg.OpenKey(CompanyKey, False);
      if bRes then
      begin
        sl := TStringList.Create;
        try
          // Subkeys holen
          reg.GetKeyNames(sl);
          // ist zu löschender Schlüssel vorhanden?
          if sl.IndexOf(SubKey) <> -1 then
          begin
            bRes := reg.DeleteKey(SubKey);
          end;
          // Liste mit Subkeys löschen
          sl.Clear;
          // noch mal alle Subkeys holen
          reg.GetKeyNames(sl);
          reg.CloseKey;
          // keine Subkeys
          if sl.Count = 0 then
            bRes := reg.DeleteKey(CompanyKey);
        finally
          FreeAndNil(sl);
        end;
      end; // OpenKey
    end; // KeyExists
  finally
    FreeAndNil(reg);
  end;
  result := bRes;
end;
CompanyKey steht zum Beispiel für 'HKCU\Software\MeineFirma' und SubKey entsprechend dann für den Programmnamen der Firma.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat