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).