如何判斷msi安裝包程序是否安裝及安裝路徑
來源:程序員人生 發布時間:2015-05-22 07:59:20 閱讀次數:5571次
使用MSI的函數可以檢測軟件是不是安裝,獲得安裝版本信息等,條件是軟件為.msi文件安裝的。
在使用前建議加上以下頭文件及庫依賴:
#include <Windows.h>
#include <Msi.h>
#pragma comment(lib, "Msi.lib")
1. 檢測軟件是不是安裝,upgradeCode用于標示從1個版本升級到另外一個版本,1般可以用于判斷是不是是同1個軟件。
bool CheckExistSoftware(wchar_t *upgradeCode) //可以通過工具Orca查看安裝包相應的upgradeCode
{
wchar_t productCode[39];
if (ERROR_SUCCESS == MsiEnumRelatedProductsW(upgradeCode, 0, 0, productCode))
{
return true;
}
return false;
}
2. 獲得軟件的安裝路徑
void GetSoftwareInstallPath(const wchar_t *upgradeCode, wchar_t *installPath, DWORD *pathLength)
{
DWORD i = 0;
UINT result;
wchar_t productCode[39];
for (i = 0; ERROR_NO_MORE_ITEMS != (result = MsiEnumRelatedProductsW(upgradeCode, 0, i, productCode)); i++)
{
if (ERROR_SUCCESS == result)
{
if (ERROR_SUCCESS == MsiGetProductInfoW(productCode, INSTALLPROPERTY_INSTALLLOCATION, installPath, pathLength))
{
return;
}
}
}
wcscpy_s(installPath, 2, L"");
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈