c++ - 具有非管理员权限的 MSI C++ 自定义操作

标签 c++ windows-installer custom-action

我有一个 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/

相关文章:

c++ - 如何在从声明 View 接收到的 QML 对象上设置事件监听器?

c++ - 获取模板类的类型

c++ - 使用 opencv 调试代码失败并出现段错误

windows-installer - 如何使用 MSI 软件包卸载 topshelf 服务?

windows - 为什么 WiX 将 _wixCert_{0-9} 添加到证书友好名称中?

user-interface - WIX 降级预防警告在错误的时间显示

c++ - 这段代码会导致内存泄漏吗?

WiX:在 RemoveExistingProducts 之前停止服务或运行提升的 CustomAction 以在 RemoveExistingProducts 之前停止进程

wix - 如何从CustomAction获取返回码?

c# - 如何使用 CustomAction 更改 ROOTDRIVE?