Hi,

Maybe this is not a good question but I really need your help on this.

I need to know on how does windows installer uninstall my application when I click the remove button in the Add/Remove program? Someone here might tell me that it uses the uninstall information in the registry by executing the command in the UninstallString value. But I deleted that registry string value and still I was able to uninstall my application succesfully. I just wonder how the windows installer manage to do that even if I already deleted that entry(UninstallString = MsiExec.exe /I{00000000-0000-0000-0000-000000000000}). There must be an answer somewhere.

~Berkley
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Why? What is it you want to achieve? If you don't want users to see the program listed in ARP, use the ARPSYSTEMCOMPONENT property. if you don't them to see a 'Remove' button, use the ARPNOREMOVE property. Ditto for 'Modify', etc.
Answered 08/13/2009 by: VBScab
Red Belt

Please log in to comment
0
As per my understanding, uninstallstring is just a commandline to remove a product.
If you delete it, you can still remove product through msiexec /x [product code], or through remove button. If you delete whole uninstall key, then also you can remove product through msiexec /x [product code].
I think it takes reference from cache copy of msi,
Answered 08/13/2009 by: suchi.jigar
Purple Belt

Please log in to comment
0
This is an interesting topic. I tested changing the uninstall/modify strings in the registry and the change isn't reflected when you click the button... even after a reboot.

I ran procmon and rundll32 does indeed read that key before uninstalling.. I wish I had more time to look into this but that's all the play time I have today.
Answered 08/13/2009 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
Maybe a silly question so please forgive me in advance:

Are you only looking at / modifying values in HKLM (or HKCU)\Software\Microsoft\Windows\CurrentVersion\Uninstall?

Sometimes I have found entries in the ARP applet that are not located in the Uninstall key. Have you searched for an uninstall string elsewhere in the registry?
Answered 08/13/2009 by: sv408
Senior Yellow Belt

Please log in to comment
0
I couldn't resist as this was bothering me. If you delete the value "WindowsInstaller" for that entry, it will work. If WindowsInstaller=1 it ignores what you put in there. I don't really recommend doing this though as it seems to confuse the hell out of A/R programs. You'll have to test more.
Answered 08/13/2009 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
1
I've noticed that this retains the original WI A/R entry though. Here's a discussion I found elsewhere:
http://www.pcreview.co.uk/forums/thread-1544595.php

Bob Arnson:
If the WindowsInstaller value in the program's Uninstall key is 1, the
Add/Remove Programs applet ignores the UninstallString value and always does
the equivalent of an 'msiexec /x{productcode}.' A trick I've used (stolen
from InstallShield) is to create a "manual" entry in the Uninstall key. Set
ARPSYSTEMCOMPONENT to 1 to have the RegisterProduct standard action create
an Uninstall key with a SystemComponent value of 1 -- that hides the entry
in Add/Remove Programs. Then I use the Registry table to create another
Uninstall key. In this key, manually specify the values that MSI usually
creates, but omit the WindowsInstaller value. Then you can make
UninstallString 'msiexec /i{productcode}' or whatever you want.
Answered 08/13/2009 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
ORIGINAL: sv408

Maybe a silly question so please forgive me in advance:

Are you only looking at / modifying values in HKLM (or HKCU)\Software\Microsoft\Windows\CurrentVersion\Uninstall? Yes, Actually I was only looking in HKLM entry.

Sometimes I have found entries in the ARP applet that are not located in the Uninstall key. Have you searched for an uninstall string elsewhere in the registry?
As far as I know, ARP entry will be created when you create an uninstall key in HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall. What do you mean entries in the ARP applet? Thanks in advance...

~Berkley

Answered 08/13/2009 by: yelkrebb
Yellow Belt

Please log in to comment
0
ORIGINAL: turbokitty

I've noticed that this retains the original WI A/R entry though. Here's a discussion I found elsewhere:
http://www.pcreview.co.uk/forums/thread-1544595.php

Bob Arnson:
If the WindowsInstaller value in the program's Uninstall key is 1, the
Add/Remove Programs applet ignores the UninstallString value and always does
the equivalent of an 'msiexec /x{productcode}.' A trick I've used (stolen
from InstallShield) is to create a "manual" entry in the Uninstall key. Set
ARPSYSTEMCOMPONENT to 1 to have the RegisterProduct standard action create
an Uninstall key with a SystemComponent value of 1 -- that hides the entry
in Add/Remove Programs. Then I use the Registry table to create another
Uninstall key. In this key, manually specify the values that MSI usually
creates, but omit the WindowsInstaller value. Then you can make
UninstallString 'msiexec /i{productcode}' or whatever you want.




This helps a lot! Thanks Turbokitty
Answered 08/13/2009 by: yelkrebb
Yellow Belt

Please log in to comment
0
What do you mean entries in the ARP applet? The icons in Control Panel launch what have come to be known as 'applets'.

'ARP' simply means 'Add/Remove Programs.
Answered 08/13/2009 by: VBScab
Red Belt

Please log in to comment
0
You may want to check out:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<Compressed ProductCode>\InstallProperties\
Answered 08/14/2009 by: AngelD
Red Belt

Please log in to comment
0
...which will appear if your install was "managed", i.e. deployed via Group Policy.
Answered 08/14/2009 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity