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.