/build/static/layout/Breadcrumb_cap_w.png

Add/Remove program remove button command

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

Answers (11)

Posted by: turbokitty 14 years ago
6th Degree Black Belt
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.
Posted by: anonymous_9363 14 years ago
Red Belt
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.
Posted by: suchi.jigar 14 years ago
Purple Belt
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,
Posted by: turbokitty 14 years ago
6th Degree Black Belt
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.
Posted by: sv408 14 years ago
Senior Yellow Belt
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?
Posted by: turbokitty 14 years ago
6th Degree Black Belt
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.
Posted by: yelkrebb 14 years ago
Yellow Belt
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

Posted by: yelkrebb 14 years ago
Yellow Belt
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
Posted by: anonymous_9363 14 years ago
Red Belt
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.
Posted by: AngelD 14 years ago
Red Belt
0
You may want to check out:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<Compressed ProductCode>\InstallProperties\
Posted by: anonymous_9363 14 years ago
Red Belt
0
...which will appear if your install was "managed", i.e. deployed via Group Policy.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ