How to Hide ARP entry and how to include the same in package
I am Working on an Applicaion "Mindjet" when I am installing it there are two entries created in ARP one is "mindjet" and other is the optional one i.e "PDF X-change" (this is aconverter and sends the doc o printer), this "PDF Xchange" entry in ARP I want to make it hide.
For that I did,I installed the application first then in the uninstall hive "PDF Xchange's I added a dword 32bit value as "SysemComponent" with value '1' then I exported the "PDF Xchange's uninstall hive and took it to the mst and imported to the "HKLM" and saved the mst,
Later I took the msi and the mst and test installed in a test machine but the ARP is still creating two entries "mindjet" and "PDF X-change"
can any one knows how make it possible
Answers (3)
Could it just be a spelling mistake?
"SysemComponent" should be "SystemComponent".
It's more likely that your additional registry is being created before the ARP entry is created for PDF X-change, meaning that it is overwritten when it is created.
PDF X-change is probably installed by a CA after the registry is written and overwriting your setting.
Did you export the whole uninstall hive? You don't need to do that as it installs anyway, so all you need is the SystemComponent=1 adding to the correct uninstall hive.
You'll probably need a CA to set the registry value (via vbscript) that runs after the PDF X-change is installed to push the setting in correctly.
Hope that helps,
Dunnpy
Comments:
-
Thanx Dunpy for the answer, it helped me a lot
-While questioning I made spelling mistake but in original made without any flaws,
-I tried in two different ways actually, imported with single entry "SystemComponent" and also with importing total hive. I tried with whole hive because mst/msi was not containing the unistall hive created(it should be created generally for all apps).
- I too got know about the CA to set the registry value, can you help me in wrinting the vbscript for that, as I am not familiar with the scripting.
Please help - Kran 10 years ago-
This will give you a good start: http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/registry/
To do it properly, you'd need to inlcude error checking e.g. Write the registry value and then read it to confirm it's been written correctly etc. - dunnpy 10 years ago-
open regedit, export the hive you like to a file, edit the file so that only systemcomponent is there, and then import the registry with "regedit /s /q {pathtofile.reg} - JoeC 10 years ago
-
or just add the registry key in the main msi... - JoeC 10 years ago
-
@JoeC - please re-read my initial answer.
My suspicion is that the CA that installs PDF X-change is running AFTER the registry from the MSI is written - therefore OVERWRITING whatever is being set in the MSI - Hence the need for a CA to write the registry setting AFTER the CA for PDF X-change. - dunnpy 10 years ago -
Thanks for the compliment.
Yes if you want to write another Value to a key that will be written. But in this case the key will not be written if its not systemcomponent.
btw. i will stop to make advices here now. because you seem to be so good and i dont want to stop you. you can keep the whole site for you. i have to work. have a good life. - JoeC 10 years ago
Just use ARPSYSTEMCOMPONENT to prevent the entry from appearing in ARP:
http://msdn.microsoft.com/en-us/library/aa367750(v=vs.85).aspx
Comments:
-
This won't work, the main MSI is for MindJet - which the OP wants to appear in ARP. The secondary application, PDF X-change is installed via a CA and this creates its own ARP entry on installation and is unreleated to the MSI settings. - dunnpy 10 years ago
if the second one is an msi too, append ARPSYSTEMCOMPONENT=1 to the commandline.
If not, add a Registry Key to the Uninstall Section of the Software here:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{theinstalledsoftware}
Key: SystemComponent
Format: REG_DWORD
Value: 1
this should hide it.
have a nice day
Reto