Hi rvk, the CommandLine of TProcess is deprecated and does nothing. However adding the quotes
'cmd.exe /C "' + UninstallData + '"';
worked in most cases, a few only doesn't works like AVG setup and others that I need to list.
Yes I noticed that the ifdef was not working so I removed it from the application.
I will add your code to check if 64 bit os. Edit: Ok, reading again, I need to find that code

Also there are applications registered in HKCU not only in HKLM, I've added that line.
There are applications that are MSI installers so these don't have the data pointing to the executable to uninstall, but they have a GUID that must be passed like this:
This is in one more recent commit.
However I can't say if all apps that have a GUID that don't have a "unintall string" are MSI installers. Of course the MSI uninstall window will appear since I send a valid GUID but that don't means that they will be uninstalled or not, I actually need to uninstall that applications with the app to see if works as expected.
The problem of uninstalling a 64 bit app with a 32 bit application should work because I run cmd and that is always 64 bits that run the process of uninstall.