NSIS,以管理员身份运行一项操作

发布于 2024-11-27 00:56:27 字数 100 浏览 0 评论 0原文

我有一个仅需要用户权限的安装,但此安装应删除以前的文件或调用卸载程序(如果存在)

NSIS 中是否有方法以管理员身份运行一个操作(DeleteFile、RunExe)?

I have an installation that require only user privilegies, but this installation should remove previous files or call uninstaller if it exists

Is there way in NSIS to run one action(DeleteFile, RunExe) as administrator?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风轻花落早 2024-12-04 00:56:27

提升是针对每个进程的,一旦提升就无法再下降。

您应该创建一个小助手 nsis 应用程序来执行所需的操作(仅使用 RequestExecutionLevel admin 是不够的,您还需要使用 UserInfo::GetAccountType) 将 ShellExecute 与 runas 一起使用启动提升进程的动词。

Elevation is per process and you cannot go back down once you have elevated.

You should create a little helper nsis app that performs your required actions (RequestExecutionLevel admin alone is not enough, you also need to use UserInfo::GetAccountType) Use ShellExecute with the runas verb to start a elevated process.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文