scubar Posted May 25, 2013 Share Posted May 25, 2013 (edited) Hi Guys Ive been a long time browser of these forums and have managed to create many basic scripts using the information here but I have come across a problem with my latest one. Im trying to loop through a reg key to remove any left over traces of Adobe Reader but for some reason it deletes some but leaves other entries. If I run the script again it will then delete some more. I would like it to be able to run once and catch all the entries and remove them. Below is the code im using. Any help would be greatly appreciated ; Checks the Registry and removes any left over Adobe reader entries Local Const $sSKey0 = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products" Local $a, $sSubKey0, $RegKey0,$ProductName, $Found $ProductName = "" $Found = "" While 1 $a += 1 $sSubKey0 = RegEnumKey($sSKey0, $a) If @Error Then ExitLoop $ProductName = RegRead($sSKey0 & "\" & $sSubKey0, "ProductName") If StringInStr($ProductName, "Adobe Reader 9") Or _ StringInStr($ProductName, "Adobe Reader X") Or _ StringInStr($ProductName, "Adobe Reader XI") Then $RegKey0 = $sSKey0 & "\" & $sSubKey0 RegDelete($RegKey0) EndIf Sleep(100) WEnd Heres the registry entries im using for testing. It seems to leave the Adobe Reader 9.1 , Adobe Reader X and Adobe Reader XI on first run. Subsequent runs then remove these keys. expandcollapse popupWindows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA73301B7449A0000000010] "Clients"=hex(7):3A,00,00,00,00,00 "Version"=dword:09000000 "Language"=dword:00000409 "Assignment"=dword:00000001 "PackageCode"="83AA9F33BAE0DC849BB8A5FF1750CF28" "ProductIcon"="C:\\WINDOWS\\Installer\\{AC76BA86-7AD7-1033-7B44-A90000000001}\\SC_Reader.exe" "ProductName"="Adobe Reader 9" "InstanceType"=dword:00000000 "AdvertiseFlags"=dword:00000184 "AuthorizedLUAApp"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA73301B7449A0100000010] "Clients"=hex(7):3A,00,00,00,00,00 "Version"=dword:09010000 "Language"=dword:00000409 "Assignment"=dword:00000001 "PackageCode"="99B7519FD0484DE4FB163EC4B8907265" "ProductIcon"="C:\\WINDOWS\\Installer\\{AC76BA86-7AD7-1033-7B44-A91000000001}\\SC_Reader.ico" "ProductName"="Adobe Reader 9.1" "InstanceType"=dword:00000000 "AdvertiseFlags"=dword:00000184 "AuthorizedLUAApp"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA73301B7449A0500000010] "Clients"=hex(7):3A,00,00,00,00,00 "Version"=dword:09050000 "Language"=dword:00000409 "Assignment"=dword:00000001 "PackageCode"="EE1AFE940DEE28F48AF671209DA086CF" "ProductIcon"="C:\\WINDOWS\\Installer\\{AC76BA86-7AD7-1033-7B44-A95000000001}\\SC_Reader.ico" "ProductName"="Adobe Reader 9.5.0" "InstanceType"=dword:00000000 "AdvertiseFlags"=dword:00000184 "AuthorizedLUAApp"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA73301B744AA0000000010] "Clients"=hex(7):3A,00,00,00,00,00 "Version"=dword:0A000000 "Language"=dword:00000409 "Assignment"=dword:00000001 "PackageCode"="A9AC7483F9E553B43A2FB0E9E01FA346" "ProductIcon"="C:\\WINDOWS\\Installer\\{AC76BA86-7AD7-1033-7B44-AA0000000001}\\SC_Reader.ico" "ProductName"="Adobe Reader X" "InstanceType"=dword:00000000 "AdvertiseFlags"=dword:00000184 "AuthorizedLUAApp"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA73301B744AA0100000010] "Clients"=hex(7):3A,00,00,00,00,00 "Version"=dword:0A010004 "Language"=dword:00000409 "Assignment"=dword:00000001 "PackageCode"="01E1AB89E10D8F44CA00643AFEEF80FC" "ProductIcon"="C:\\WINDOWS\\Installer\\{AC76BA86-7AD7-1033-7B44-AA1000000001}\\SC_Reader.ico" "ProductName"="Adobe Reader X (10.1.4)" "InstanceType"=dword:00000000 "AdvertiseFlags"=dword:00000184 "AuthorizedLUAApp"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA73301B744BA0000000010] "Clients"=hex(7):3A,00,00,00,00,00 "Version"=dword:0B000000 "Language"=dword:00000409 "Assignment"=dword:00000001 "PackageCode"="A98DAC519B3390444B1480C824EC0845" "ProductIcon"="C:\\WINDOWS\\Installer\\{AC76BA86-7AD7-1033-7B44-AB0000000001}\\SC_Reader.ico" "ProductName"="Adobe Reader XI" "InstanceType"=dword:00000000 "AdvertiseFlags"=dword:00000184 "AuthorizedLUAApp"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\68AB67CA7DA73301B745BA0000000010] "Clients"=hex(7):3A,00,00,00,00,00 "Version"=dword:0B000003 "Language"=dword:00000409 "Assignment"=dword:00000001 "PackageCode"="A48771085A49DA04EA844D06042E0AC0" "ProductIcon"="C:\\WINDOWS\\Installer\\{AC76BA86-7AD7-1033-7B44-AB0000000001}\\SC_Reader.ico" "ProductName"="Adobe Reader XI (11.0.03)" "InstanceType"=dword:00000000 "AdvertiseFlags"=dword:00000184 "AuthorizedLUAApp"=dword:00000000 Edited May 25, 2013 by scubar Link to comment Share on other sites More sharing options...
czardas Posted May 25, 2013 Share Posted May 25, 2013 (edited) You are incrementing $a every time - even after deleting a reg key. I'm not familar with AutoIt registry functions, but I think this is the most likely cause of your problem. Once a key is deleted, I would imagine the remaining keys are assigned new numeric values. Edit : I could be wrong, but the problem you describe fits with kind of results I'd expect. Edited May 25, 2013 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
Solution scubar Posted May 25, 2013 Author Solution Share Posted May 25, 2013 Thanks that seems to have done the trick. I added $a -= 1 just before the EndIf and its now removing all of them on the first attempt. czardas 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now