我正在编写一个小应用程序来安装某些产品并以静默模式卸载其他产品.
每个产品都有其MSI文件,没有别的,我的应用程序清单表明它应该以管理员权限运行.
运行msiexec适当的参数来完成我的任务(只是一堆代码)并且一切正常.
无论如何,一些软件包需要花费大量时间才能完成,并且在某些旧PC用户询问是否仍然在后台运行某些软件包或者它是否已挂起.
那么有可能"抓住" msiexec进度,例如更新我的应用程序上的进度条吗?听起来很疯狂,但我很确定一些专业安装程序以这种方式运行外部msi包.
那么,它有可能吗?我们可以在C#中做些什么,或者这是一项非常艰巨的任务,需要我没有的大量知识?
只是一个注意事项:我知道我可以使用"/qb"param,但是有些包使用它的方式并不正确,我不想使用它.
如果要监视进度,可能必须直接使用Windows Installer API,
http://www.codeproject.com/Articles/5773/Wrapping-the-Windows-Installer-2-0-API
此CodeProject文章显示了一个示例,而Microsoft几乎没有关于MSDN上的函数的信息,
http://msdn.microsoft.com/en-us/library/windows/desktop/aa370384(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa368786(v=vs.85).aspx
| 归档时间: |
|
| 查看次数: |
2684 次 |
| 最近记录: |