Microsoft bestemte seg for å gjøre registeret API virker forskjellig på Win9X til WinNT /2000. Hvor fint! Fikse DeleteKeyFrom den WinAPI hjelp på DeleteKey .... Ring DeleteKey å fjerne en bestemt nøkkel og dens tilhørende data, om noen, fra registret. Under Windows 95, hvis nøkkelen har undernøkler, undernøklene og eventuelle tilknyttede data er også removed.Under Windows NT, undernøkler må eksplisitt slettet av separatecalls til DeleteKey.
... Så, kode som du skriver på Win9x som fungerer (sletter keyregardless av nøkler) vil ikke fungere på WinNT /2000.So fant jeg det nødvendig å skrive min egen gjennomføring whichrecursively kaller iteself for å slette sub-keys.procedure DeleteRegKey (aRoot: HKEY; aPath: String); Var SL : TStringList; X: Integer; begynne SL: = TStringList.Create; med TRegistry.Create prøver ROOTKEY: = aRoot; hvis OpenKey (aPath, False), og start GetKeyNames (SL); For X: = 0 til SL.Count-en gjøre DeleteRegKey (aRoot, aPath + '\\' + SL [X]); CloseKey; DeleteKey (aPath); slutt; endelig fri; SL.Free; end, end; TIPS:
å forstå rekursjon, må du først forstå rekursjon
Fikse TRegistry.DeleteKey
Previous:Les en komponent som string
Next Page:Hva har min markøren ser ut?