在没有提示UAC权限的情况下从C ++应用程序运行NSIS安装程序

时间:2016-08-28 14:44:16

标签: c++ nsis

我将C ++应用程序作为服务运行。我想从该服务静默启动我的NSIS安装程序。可能吗?如果是,我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您想以与服务相同的用户身份启动安装程序,并且此服务在完整性级别高或系统上运行,那么您只需使用CreateProcessShellExecute启动安装程序。

如果您想以当前登录的用户身份启动安装程序,则需要使用CreateProcessAsUser,但如果您采用此路线,情况会变得复杂。可能没有任何登录用户或可能有多个用户。一旦确定了要启动该流程的用户,就可以使用WTSQueryUserToken获取其令牌。