如何安装AccessControl NSIS插件?并授予对子文件夹的完全访问权限?

时间:2013-11-18 13:00:29

标签: windows plugins install nsis

我正在做它在论坛上所说的内容,但无法弄清楚问题出在哪里。我下载了.zip并将其解压缩。除了Docs之外还有4个文件夹(Contrib,Docs,Plugins,Unicode),其他文件放在哪里?从AccessControl / Plugins我把.dll放到我的NSIS / Plugins文件夹中,其他的.dll文件。但是其他两个文件夹不包含要放入NSIS / Include的任何.nsh或.nsi文件。问题出在哪儿 ?我正在使用HM NIS Edit,当我尝试编译它时说无效命令。

我尝试了这个代码,它编译但我不认为它做了什么......或者我使用错误的命令。我需要给我的配置文件夹读取,写入INSTDIR中的权限。我用INSTDIR \ config和INSTDIR试了一下。但目前没有任何作用。也许包含插件。

System::Call 'AccesControl.dll::GrantOnFile (t ."$INSTDIR",t .""(S-1-5-32-545)",t ."FullAccess")'

2 个答案:

答案 0 :(得分:7)

是否会对上述答案添加评论,但系统不会让我这么做。关于NSIS 3.0+的说明默认文件夹位置不起作用。为了解决这个问题,我将文件复制到:

AccessControl.zip\Plugins\AccessControl.dll --> NSIS\Plugins\x86-ansi

AccessControl.zip\Unicode\Plugins\AccessControl.dll --> NSIS\Plugins\x86-unicode

答案 1 :(得分:4)

您可以在NSIS目录的根目录下解压缩插件zip,或者至少,您需要将插件dll放入NSIS plugins目录(或者如果将其包含在Plugins目录中{3}})

  • 插件的核心位于unicode/plugins目录中的dll文件中(Docs包含适用于NSIS 3.0 +的unicode风格的插件的unicode版本)
  • Contrib目录包含插件文档
  • # Make the directory "$INSTDIR\database" read write accessible by all users AccessControl::GrantOnFile "$INSTDIR\database" "(BU)" "GenericRead + GenericWrite" 目录包含有用的插件源代码,如果你想修改插件并重建它。正常使用时不需要它。

调用nsis插件的正确方法不是通过系统插件:你需要直接调用nsis脚本中的插件方法,如!addplugindir所示:

AccessControl::GrantOnFile `${somePath}` `(S-1-5-32-545)` `${someAccess}` ;(S-1-5-32-545) is local users GUID

或来自我的一些代码

{{1}}