【问题标题】:Privileges for installing executables with nsis使用 nsis 安装可执行文件的权限
【发布时间】:2013-09-24 01:52:06
【问题描述】:
我需要为一些可执行文件编写安装程序。用户可以将它们复制到任何他想要的地方,但通常这是在 C:\Program Files\MyProgram
中执行的
如果安装了 Visual Studio,我还需要将一些内容复制到 system32(我想这需要管理员权限)。
这对支持普通用户和管理员用户有意义吗?我的意思是:如果我需要安装一些我总是需要管理员权限的东西,这是正确的吗?
【问题讨论】:
标签:
windows-8
windows-7
installation
nsis
privileges
【解决方案1】:
同时支持两者可能会很棘手,但可以通过使用RequestExecutionLevel highest 来完成,然后使用 UserInfo 插件检查您是否真的是管理员。然后,如果您检测到 VS 时安装程序尚未安装,则您必须告诉用户强制安装程序以管理员身份运行。
普通用户无法写入$programfiles,因此您必须默认$instdir 为$localappdata\Programs\Yourapp。您还应该看看SetShellVarContext,它将帮助您解决 HKCU 与 HKLM 的问题...