MSI - 如何知道特定 MSI 何时正在运行
有没有一种简单的方法可以知道 msi 何时运行? (在静默或非静默模式下。)也许使用 MSI API?从某处读取?...
我需要这个以避免启动用 C++ 编码的程序。
感谢您的帮助。
Is there a simply way to know when an msi is running? (either in silent or no silent mode.) Maybe using and MSI API? Reading from somewhere?...
I need this in order to avoid launching a program coded in C++.
Thanks for your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有任何 API 用于检测正在运行的安装程序。此外,MSI 安装有两个顺序:
InstallUISequence 使用在当前用户帐户。
InstallExecuteSequence 使用 Windows Installer 服务的子进程。
因此,没有一种简单的方法可以检测正在运行的安装。我能想到的唯一解决方案是枚举所有打开的窗口并尝试按名称查找安装对话框。
There isn't any API for detecting running installers. Also, an MSI installation has two sequences:
InstallUISequence uses a process which runs under the current user account.
InstallExecuteSequence uses a process which is a child of the Windows Installer service.
So there's not an easy way for detecting a running installation. The only solution I can think of is enumerating all open windows and trying to find an installation dialog by name.