我正在编写一个小应用程序来安装某些产品,并在静默模式下卸载其他应用程序。
每个产品都有其MSI文件,没有别的,我的应用程序清单声明它应该以管理员权限运行。
用适当的参数运行msiexec
很容易,可以完成我的任务(只是一堆代码),一切正常。
无论如何,有些软件包需要花费大量的时间才能完成,而一些老用户正在询问是否某些东西仍然在后台运行或者是挂起。
那么是否有可能“赶上”msiexec
的进展,例如更新我的应用程序上的进度条?听起来很疯狂,但我敢肯定,一些专业的安装程序以这种方式运行外部msi软件包。
那么,它可能吗?在C#中我们可以做些什么,或者这是一项非常艰巨的任务,需要大量我没有的知识?MsiExec progress catch
只是说明:我知道我可以使用"/qb"
param,但是某些软件包的行为不正确,我不想使用它。
刚一说明:我不认为,你是正确的,“/ qb“对于某些软件包的行为与”/ qn“不同。根据我的长期经验,我不知道这是真的。从技术上讲,它们都不使用所谓的用户序列,所以安装行为除了进度条和少量对话框以外都是相同的。事实上,UAC最近出现的行为与从一开始就拥有管理权限的行为有所不同,但这与“/ qb”本身无关。 – Philm