Horrid
Programmer
- May 20, 1999
- 373
I need to get a list of installed applications and the location of the exe. This data will be presented to the user is a nice clean list showing the icon and application name (I will shield them from the exe name).
I have tried a number of methods. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall contains a good list of applications but it does not provide a reference to the exe.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths provies the locations of the exe files but doesn't contain a reference to the application title.
I have not found and way to cross reference the 2 keys.
My current experiement is working through the start menu. The problem is once again, I have the exe name but no application name, the shortcut does not provide an appliation title (unless its the LPITEMIDLIST list that I'm still still looking into).
Experiments with the open with menu (via ::ShellExecute(NULL, NULL, "RUNDLL32.EXE", "shell32.dll,OpenAs_RunDLL " ,NULL, SW_SHOWNORMAL); ) have not worked out, I don't want to open a file or launch the application, I just want them to select something from the list to record for later use.
Is there a way to extract the application name from an exe without executing the file? Or am I missing the reg keys that I should use to cross reference?
Thanks for any tips anyone can give, I have been working at this problem on and off for about 2 weeks and am running low on ideas.
I have tried a number of methods. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall contains a good list of applications but it does not provide a reference to the exe.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths provies the locations of the exe files but doesn't contain a reference to the application title.
I have not found and way to cross reference the 2 keys.
My current experiement is working through the start menu. The problem is once again, I have the exe name but no application name, the shortcut does not provide an appliation title (unless its the LPITEMIDLIST list that I'm still still looking into).
Experiments with the open with menu (via ::ShellExecute(NULL, NULL, "RUNDLL32.EXE", "shell32.dll,OpenAs_RunDLL " ,NULL, SW_SHOWNORMAL); ) have not worked out, I don't want to open a file or launch the application, I just want them to select something from the list to record for later use.
Is there a way to extract the application name from an exe without executing the file? Or am I missing the reg keys that I should use to cross reference?
Thanks for any tips anyone can give, I have been working at this problem on and off for about 2 weeks and am running low on ideas.