Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where are all possible locations of UninstallString registry entries?

I'm writing a Wix-based installer that needs to upgrade from older, non-msi-based installations. I'm finding instances of previously installed components by searching directly in the Registry.

To find the uninstaller for a component, I look in

 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\MyProgram

And get the UninstallString value. This is fine, but I realised that for a 32 bit install on a 64 bit machine, the entry is actually at

HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MyProgram

Is there anywhere else I ought to be looking?

like image 391
fredley Avatar asked Apr 12 '12 11:04

fredley


People also ask

Where are uninstallers located in registry?

Open the Registry Editor by selecting Start, Run, typing regedit and clicking OK. Navigate your way to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall. In the left pane, with the Uninstall key expanded, right-click any item and select Delete.

Where in registry are installed programs?

Data pertaining to programs that are (or were at one time) installed on a system can also be found in the following registry locations: SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths. SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. The installed program data in the registry (in both NTUSER.


2 Answers

There's a third entry:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
like image 169
Eliezer Avatar answered Oct 07 '22 20:10

Eliezer


I've checked this, and these are the only two locations. The second is used to store 32-bit programs on a 64-bit version of Windows. There are no other cases that need checking.

like image 25
fredley Avatar answered Oct 07 '22 18:10

fredley