出于某种原因,我们正在使用我们自己的安装GUI交付产品,这意味着,我们将以静默方式运行msi安装.
通过使用MSI API"MsiInstallProduct",我可以静默安装产品,但我不知道如何获取此安装的进度数据以及如何取消它.
有人有想法吗?
更新2018年6月:虽然下面显示的工具不再可供下载,但我通过Wayback机器找到了它.我认为链接到它是正常和合法的,因为该工具是免费软件.更新了以下链接.
更新:遗憾的是,这个来自Wise的工具不再可下载了.我不确定是否可以分发它.它似乎是作为其主要Wise Package Studio套件的一部分分发的免费工具,但我不认为它是开源的.我希望他们将它作为一个开源工具发布.
由于许多法律问题,Wise包装产品已经停产.
我相信你可以通过MSI API获得进展,但如果我是你,我会在通过msiexec.exe调用安装后从MSI本身显示进度条.
MSI支持几种不同的安装级别(完整,完全静默,基本GUI,简化GUI等).在你的情况下,听起来你想要一个基本的用户界面.这会产生一个进度条,您可以在其中隐藏取消按钮,并可选择显示完成模式对话框:
使用进度条静默安装,没有取消按钮,最后没有模态对话框:
msiexec.exe /I "Test.msi" /QB-!
为避免必须手动构建这些愚蠢的msiexec命令行,请使用Wise 的msi命令行构建器工具:http://www2.wise.com/filelib/WICLB.exe(从Wayback机器中复活).
请运行virustotal.com下载以确保安全.
相关:
使用msi.exec安装每次都打开帮助选项
无声安装MSI
如何从命令提示符安装MSI包
如何强制Windows MSI安装程序执行完整安装?
具有自定义选择的静默安装程序
这是一个示例项目,似乎可以执行您所指的:http: //www.codeproject.com/KB/cs/msiinterop.aspx