Link to home
Start Free TrialLog in
Avatar of cl0ckwork
cl0ckwork

asked on

File holding Add/Remove Programs text?

I'm looking to find the actual file that holds the information which Add/Remove Programs loads. Ie how it populates the names and sizes of all the programs installed. I need to find this file as I am writing a program to check version'ing on multiple programs. Yes I'm aware I can do cmd.exe ProgramName -version, as I'm able to do this for most. However for example MSXML cannot be version'd in any normal way( i.e. I can figure out that a MSXML 4.0 folder exists in C:\Program Files\ , but this doesn't tell me whether it's SP2 or not, I've only found that information available in Add/Remove Programs under its listing).

Thanks.
Avatar of cl0ckwork
cl0ckwork

ASKER

I've found a registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\6030E61781384634B8F8C04C9E73B6CA\InstallProperties

That has a key called DisplayVersion with the value of 4.20.9818.0. This is what i'm looking for. However I'm highly doubtful that the exact location in which I found this will be universal for all machines. Crawling the entire registry with a script probably isn't very fun either.
SOLUTION
Avatar of jasfout
jasfout
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Avatar of Pber
Pber
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
>Title: File holding Add/Remove Programs text?

there is no text file, but there are several files which make up the registry which contains the "Add/Remove Programs" list

http://www.easydesksoftware.com/regfiles.htm
Ok so it seems HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
is where I need to look, however, is there a way I can create the hash dynamically so that I know what its name is?
ie instead of parsing through tons of keys in \Uninstall\ is there an algo where the hashstring (ex 4302B2DD-D958-40E3-BAF3-B07FFE1978CE ) is created that I can utilize?
Not really this is done by the OS and the installer.  You'll notice some programs have keys others are guids.  You are pretty much stuck with that.  I would suggest renaming the keys as it might break things.