NSIS安装程序。UAC - 用户只选择路径后才能提升权限吗?

4

目前我正在参与开发一个NSIS安装程序。该安装程序使用UAC插件进行提权,以便能够安装到Program Files目录内的文件夹中。现在,安装程序在.onInit中就开始提权了。即使用户稍后选择了路径,即使这个路径不在Program Files中,安装程序也已经以管理员权限运行。如果此路径需要管理员权限,是否可以在用户选择路径后再提升权限?或者这样做不被推荐吗?

1个回答

3

个人而言,我不建议这样做,但已经有人这样做了。 这篇文章包含你需要的所有链接。


我不太理解你所引用的帖子中的一件事:“使内部实例同步所有重要变量和组件状态”。这两个实例如何交换数据? - Yulia Rogovaya
uac.nsh 中的 UAC_AsUser_* 宏可以同步变量。 - Anders
我在按照帖子中的说明操作时遇到了问题。该帖子中提供了一个链接,可以解决从安装程序页面升级后隐藏外部实例的问题。该解决方案包括从UAC.nsh调用GetOuterInstanceHwndParent宏。但是,在插件的0.2.2版本中,UAC.nsh不再包含此宏。是否有其他方法来隐藏外部实例?谢谢。 - Yulia Rogovaya
我猜你可以将 $hwndparent 复制到一个寄存器中,然后传输它。 - Anders
链接似乎已经失效。 - mrid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接