1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| function Tfrmclean.DeleteKeyNT(PathKey :string): boolean;
var
RegNT: Tregistry;
UnderKeyList: TStringList; //est la liste recensant les cle du niveau actuel
indexList: integer; //position dans UnderKeylist
begin
RegNT:= Tregistry.Create;
try
RegNT.RootKey:= NumHKEY;
result:= true;
if not RegNT.KeyExists(PathKey) then exit;
if not RegNT.OpenKeyReadOnly(PathKey) then exit;
if RegNT.HasSubKeys then begin
UnderKeyList:= TStringList.Create;
try
UnderKeyList.Clear;
GetKeyNamesEx(RegNT, UnderKeyList);
for indexlist:=0 to UnderKeyList.count -1 do
if UnderKeyList[indexlist] <> '' then
result:= DeleteKeyNT(PathKey + '\' + UnderKeyList[indexlist])
else
lblMsgError.Caption := 'Nom de Clé Enfant Vide : '+ PathKey;
RegNT.CloseKey;
result:= RegNT.DeleteKey(PathKey);
finally
UnderKeyList.Free;
end;
end else begin
RegNT.CloseKey;
result:= RegNT.DeleteKey(PathKey);
end;
finally
RegNT.free;
end;
end; |
Partager