我想要以编程方式查找基于MSI的安装的安装位置。该应用程序不会在注册表中的卸载密钥中输入“安装位置”。应用程序不会填充ARPINSTALLLOCATION属性。 (这与“添加/删除程序”引用的值相同,并存储在“卸载”键中)。不过,卸载仍然可以找到它的位置,并可以卸载它。这些信息存储在哪里? Windows使用缓存的MSI安装程序来卸载应用程序,但安装位置是在安装时第一次确定的,因此此信息不是安装程序包的一部分。如何以编程方式在Windows中查找安装的应用程序的安装位置
3
A
回答
2
我假设你说“安装位置”时,你的意思是“应用程序EXE位于什么目录?”否则,这个问题是不明确的,因为MSI不一定需要安装“应用程序”。它可以安装没有EXE的组件。它可以在多个目录中安装...
但是,这可能会工作:
呼叫MsiGetProductInfo得到ARPINSTALLLOCATION。您需要知道安装的“产品名称”。作为第一参数。呼叫MsiEnumProducts如果需要
2
下面是一个使用了WindowsInstaller.Installer
COM接口一个VBScript版本枚举所有已安装的“产品”:
Dim installer
Set installer = CreateObject("WindowsInstaller.Installer")
Dim productCode, productName
For Each productCode In installer.Products
WScript.Echo "ProductCode: " & productCode
WScript.Echo "ProductName: " & installer.ProductInfo(productCode, "ProductName")
WScript.Echo "InstallLocation: " & installer.ProductInfo(productCode, "InstallLocation")
WScript.Echo "LocalPackage: " & installer.ProductInfo(productCode, "LocalPackage")
Next
了解更多关于http://msdn.microsoft.com/en-us/library/windows/desktop/aa369432(v=vs.85).aspx#methods
相关问题
- 1. 如何在UWP中以编程方式安装Windows商店应用程序?
- 2. 如何以编程方式安装iOS应用程序?
- 3. 以编程方式安装Windows服务
- 4. 以编程方式安装Windows服务
- 5. 以编程方式在IOS中安装企业应用程序
- 6. 如何以编程方式检查应用程序是否安装在Android中?
- 7. 安卓应用程序安装位置
- 8. 以编程方式安装应用程序快捷方式
- 9. Python:查找注册表以查找程序的安装位置
- 10. 如何以编程方式查询iphone应用程序的安装信息?
- 11. 以编程方式安装Windows NDIS中级(IM)驱动程序
- 12. Windows安装程序安装
- 13. 以编程方式从内存中安装应用程序
- 14. Android在后台以编程方式安装应用程序
- 15. 如何以编程方式安装.ipa
- 16. 以编程方式在应用程序中安装mdm证书的方式
- 17. 在C#安装程序中安装第三方应用程序
- 18. 程序中的错误以编程方式在Android上安装应用程序
- 19. 如何检查QQ(tencent)应用程序是否安装在Android上或不是以编程方式安装?
- 20. 查找Silverlight OOB应用程序的安装位置
- 21. 以编程方式安装在棉花糖上的APK安装
- 22. iOS:以编程方式检测iOS应用程序安装源(安装的应用程序内)
- 23. 如何以编程方式检查是否安装了应用程序?
- 24. 如何以编程方式从已安装的应用程序获取方案?
- 25. 以编程方式从Windows上安装iPhone上的应用程序
- 26. 以编程方式从C#应用程序安装Apk文件
- 27. 以编程方式安装RIM平板电脑应用程序
- 28. 安装后设置windows应用程序
- 29. 如何在android中查找已安装的应用程序?
- 30. 如何在Windows 10上找到已安装的应用程序
与此相关的安装程序对象,当你知道它是一个.msi并且可以在其中找到一个组件时,你可以使用MsiGetComponentPath(或MsiLocateComponent)来定位它的keypath。这可能是正确组件的exe。 –
@迈克尔,这是最终为我工作的。 –