我有一个 Visual Studio 设置,其中包含用 C++ 编写的自定义操作。我需要从自定义操作启动一个进程,但安装和提交操作都以提升的方式运行,因此我的进程也以提升的方式运行。我希望新进程以普通用户身份运行。
我见过Start exe after msi install but using current user privileges但它似乎过于复杂并且没有显示任何代码。我没有时间尝试未知的 API。
有什么简单的方法吗?我可以使用 VS 设置来定义非提升的自定义操作或通过提升的自定义操作执行某些操作吗?
最佳答案
如果您只是想测试您的代码,那么使用 Orca 更新您构建的 msi 文件并不困难。它可以让您将带有代码的 dll 添加到二进制表中,将相应的行添加到自定义操作表中,并将操作添加到序列中。
如果您需要将此作为构建过程的一部分发生,您可以使用 vbscript 完成同样的事情。 SDK 附带了用于与 msi 数据库交互的良好示例 vbscript 代码,如下所述: http://msdn.microsoft.com/en-us/library/windows/desktop/aa372865%28v=vs.85%29.aspx
关于c++ - 具有非管理员权限的 MSI C++ 自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070607/