Hi,
We too had the same problem in one of our earlier application called BlackICE Agent Installer. We used a VBScript Custom Action that runs after installfinalize Exec Sequence. All you need is to create a custom action and place this script with the appropriate registry key value taken from the Hive HKCR\Installer\Products\.
**********************VBScript *****************
'Delete the Registry Entry....
On Error Resume Next
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
' Object used to get StdRegProv Namespace
Set wmiLocator = CreateObject("WbemScripting.SWbemLocator")
' Object used to determine local machine name
Set wshNetwork = CreateObject("WScript.Network")
' Registry Provider (StdRegProv) lives in root\default namespace.
Set wmiNameSpace = wmiLocator.ConnectServer(wshNetwork.ComputerName, "root\default")
Set objRegistry = wmiNameSpace.Get("StdRegProv")
' Example Deletion of Value
sPath = "Installer\Products\9B7B9EE9C205DCD4B8DD3B4AD1E41106"
lRC = DeleteRegEntry(HKEY_CLASSES_ROOT, sPath)
Function DeleteRegEntry(sHive, sEnumPath)
' Attempt to delete key. If it fails, start the subkey
' enumration process.
lRC = objRegistry.DeleteKey(sHive, sEnumPath)
' The deletion failed, start deleting subkeys.
If (lRC <> 0) Then
' Subkey Enumerator
On Error Resume Next
lRC = objRegistry.EnumKey(HKEY_LOCAL_MACHINE, sEnumPath, sNames)
For Each sKeyName In sNames
If Err.Number <> 0 Then Exit For
lRC = DeleteRegEntry(sHive, sEnumPath & "\" & sKeyName)
Next
On Error Goto 0
' At this point we should have looped through all subkeys, trying
' to delete the registry key again.
lRC = objRegistry.DeleteKey(sHive, sEnumPath)
End If
End Function
*************End of VBScript **************
Let me know if it works. Further, make this script run only after the updater is executed and delete its entry. This key will delete the entry from the add/remove programs entry. So first find the appropriate key value and then write this script. Though it looks a bit time taking task, it really works.