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

Run NSIS installer from a C++ application with out prompting UAC permission

本文关键字:应用程序 c++ 运行 NSIS 程序 安装 情况下 提示 UAC 权限      更新时间:2023-10-16

我有一个c++应用程序作为服务运行。我想从该服务静默地启动我的NSIS安装程序。这可能吗?如果是,我该如何做到这一点?

如果您想以与您的服务相同的用户启动安装程序,并且该服务运行在高完整性级别或系统中,那么您可以使用CreateProcessShellExecute来启动安装程序。

如果你想作为当前登录的用户启动安装程序,你需要使用CreateProcessAsUser,但如果你走这条路,事情会变得复杂。可能没有任何登录用户,或者可能有多个登录用户。一旦您决定要启动哪个用户,那么您就可以使用WTSQueryUserToken获取他们的令牌。