gpt4 book ai didi

c++ - 如何从MSI包中读取产品代码?

转载 作者:行者123 更新时间:2023-12-02 10:29:39 26 4
gpt4 key购买 nike

我想在安装之前从msi文件中获取产品代码。如果我的计算机上已安装该产品的其他版本,则需要它来删除该产品的其他版本。我的意思是我想防止出现错误1638(“此产品的另一个版本已存在...”)并在我的代码中手动将其删除。我正在使用c++。
因此,我想从即将安装的msi文件中获取产品代码,并使用此产品代码删除该产品的现有版本并安装一个新版本。但是当我试图打开一个msi文件来使用它处理时MsiOpenPackage(msiPackagePath, &d_handle);我收到1638错误。因此,我无法打开msi文件,也无法从中获取产品代码。我的问题:是否可以通过不使用MsiOpenPackage打开产品的msi文件获取产品代码?先感谢您!

最佳答案

我的同事刚刚解决了一个问题。我们使用了函数MsiOpenPackageEx并传递了一个标记MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE来忽略计算机状态并返回一个句柄。

关于c++ - 如何从MSI包中读取产品代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62832938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com