ces*_*ule 5 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")'
Run Code Online (Sandbox Code Playgroud)
本来要对上面的答案添加评论,但系统不会让我.关于NSIS 3.0+的说明默认文件夹位置不起作用.为了解决这个问题,我将文件复制到:
AccessControl.zip\Plugins\AccessControl.dll --> NSIS\Plugins\x86-ansi
AccessControl.zip\Unicode\Plugins\AccessControl.dll --> NSIS\Plugins\x86-unicode
Run Code Online (Sandbox Code Playgroud)
您可以将插件zip解压缩到NSIS目录的根目录,或者至少需要将插件dll放到NSIS plugins目录(如果包含,则放到所需的任何目录!addplugindir)。
Plugins目录中的dll文件中(其中unicode/plugins包含适合NSIS 3.0+ Unicode风格的插件的Unicode版本)Docs目录包含插件文档Contrib目录包含插件源代码,如果您要修改插件并重建它,则很有用。在正常的nsis使用中不需要它。调用nsis插件的正确方法不是通过系统插件:您需要直接从nsis脚本中调用插件方法,如插件页面所示:
# Make the directory "$INSTDIR\database" read write accessible by all users
AccessControl::GrantOnFile "$INSTDIR\database" "(BU)" "GenericRead + GenericWrite"
Run Code Online (Sandbox Code Playgroud)
或从我的一些代码
AccessControl::GrantOnFile `${somePath}` `(S-1-5-32-545)` `${someAccess}` ;(S-1-5-32-545) is local users GUID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4849 次 |
| 最近记录: |