Hallo,
folgendes Problem:
Ich lese in einem Script per RegEnumVal alle Wertenamen eines Schlüssels aus, vergleiche diese Werte dann auf bestimmte Vorkommen und
lösche dann diejenigen die diese Bedingung nicht erfüllen. Hier der Quelltext ....
Spoiler anzeigen
$sRegKey = "HKEY_LOCAL_MACHINE\Testkey\"
;*** Dieses Script benötigt volle Admin-Rechte ***
#RequireAdmin
;*************************************************
_SyncReg ()
Func _SyncReg ()
Local $j, $k, $sSyncFound, $nRetRegSync
For $j = 1 to 30
$sSyncFound = 0
$nRetRegSync = RegEnumVal($sRegKey, $j)
If @error <> 0 Then ExitLoop
If StringInStr($nRetRegSync,"TestName") Then $sSyncFound = 1
If $sSyncFound = 0 Then
_DelReg ($nRetRegSync)
EndIf
Next
EndFunc ;==> _SyncReg
Func _DelReg ($sTempName)
Local $nRegDelKey
$nRegDelKey = RegDelete ($sRegKey, $sTempName)
EndFunc ;==> _DelReg
Das Problem ist nun daß nicht alle Schlüssel gelöscht werden die $sSyncFound = 0 sind. Die For-Schleife zur Ermittlung der Wertenamen durchläuft dann komischerweise nicht alle Instanzen sobal ein Schlüssel gelöscht wurde. Hat jemand ne Idee ?
Gruß
Markus