NSIS,以管理员身份运行一项操作
我有一个仅需要用户权限的安装,但此安装应删除以前的文件或调用卸载程序(如果存在)
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
提升是针对每个进程的,一旦提升就无法再下降。
您应该创建一个小助手 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.