I have a problem, and I couldn't find any solution to it. I use this package to get all the application installed on a computer: https://github.com/aybe/Windows-API-Code-Pack-1.1. I use this in order to get the file path where the application is installed.
So I use this code to iterate over it:
// Virtual application folder to get all the application
Guid FOLDERID_AppsFolder = new Guid("{1e87508d-89c2-42f0-8a7e-645a0f50ca58}");
ShellObject appsFolder = (ShellObject)KnownFolderHelper.FromKnownFolderId(FOLDERID_AppsFolder);
// Iterate over all the application installed
foreach (ShellObject app in (IKnownFolder)appsFolder)
{
// Get the friendly app name
string name = app.Name;
// Get the parsing path, i.e something like that: 308046B0AF4A39CB
string parsingPath = app.Properties.System.ParsingPath.Value;
// ... Need to get the file path, i.e something like that: C:\Program Files\MyApp\myApp.exe
}
I try to find what is this value, I assume maybe it's a PIDL, but unfortunately, all the commands that I have try, return an error about Windows that tries to write into a protected memory area. So maybe it's not a PIDL, or not directly linked.