Hi everyone!
I am seeing this really weird behavior when using an enumeration. Maybe a second pair of eyes will see what wrong I am doing. So I am basically looping through a registry and if I find the key I am looking for I delete it. When I run the below script to just show me what keys match(say there are 2), it works perfectly fine. The message box shows up twice with the correct key that I am looking for.
Now when I uncomment the line where it actually deletes the key, it only deletes one of the keys and exits out. I have tried all sorts of debugging with message boxes, but I am not able to figure out why it would not delete both the keys.
loop:
EnumRegKey $1 HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall $0
StrCmp $1 "" done
${StrContains} $R1 "MyString" "$1"
StrCmp $R1 "" notfound
StrCpy $regKeyDelete $1
MessageBox MB_OK 'Found string $regKeyDelete'
;DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$regKeyDelete"
notfound:
IntOp $0 $0 + 1
goto loop
done:
Enumeration weird behaviour
3 posts