Я использую эту функцию , чтобы найти любое установленное приложение .
Но параметр "InstallLocation" вообще не работает.
Любая подсказка?
Спасибо !!
void FindApplication(string appName)
{
StringBuilder sbProductCode = new StringBuilder(39);
int iIdx = 0;
while (0 == MsiEnumProducts(iIdx++, sbProductCode))
{
Int32 productNameLen = 512;
StringBuilder sbProductName = new StringBuilder(productNameLen);
MsiGetProductInfo(sbProductCode.ToString(), "ProductName", sbProductName, ref productNameLen);
if (sbProductName.ToString().Contains(appName))
{
Int32 installDirLen = 2048;
StringBuilder sbInstallDir = new StringBuilder(installDirLen);
MsiGetProductInfo(sbProductCode.ToString(),"InstallLocation", sbInstallDir, ref installDirLen);
string result = string.Format("ProductName {0}: {1}", sbProductName, sbInstallDir);
}
}
}