我已经编写了一个 msi 文件,它在 UI 阶段提供了“per-user”或“for all”安装选项,现在发现安装程序在 Vista 上失败:
- 如果我只是重用适用于 XP 的安装程序,Vista 将触发 UAC 提示,即使是“每用户”安装,也使安装毫无意义
- 如果我在 PID_WORDCOUNT 的第 3 位关闭 UAC,Vista 将不再调用 UAC,所以即使用户有权安装到机器注册表中(比如说),也不会发生权限提升,所以安装失败。
那么:如何防止安装程序在不需要时调用 UAC?或者,即使设置了第 3 位,我如何以编程方式请求 UAC?