NSIS限制文件夹安装

时间:2012-03-30 22:03:52

标签: nsis

我正在使用NSIS安装程序,我需要能够阻止安装到“用户错误”文件夹(即$ SYSDIR,$ WINDIR,$ DESKTOP等...)

我希望他们能够选择安装路径,但如果他们选择了上面列出的位置,则只需禁用下一个按钮。我到处搜索,找不到这个答案。

我试图使用它,但我仍然可以安装到桌面:

!define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyDirLeave
!insertmacro MUI_PAGE_DIRECTORY
...
Function MyDirLeave
  Push $0
    StrLen $0 $DESKTOP
    StrCpy $0 $INSTDIR $0
    StrCmp $0 $DESKTOP 0 proceed
    MessageBox MB_ICONSTOP|MB_OK \
        "Installation on DESKTOP is not allowed, choose another directory"
    Abort
    proceed:
  Pop $0
FunctionEnd

1 个答案:

答案 0 :(得分:3)

使用.onVerifyInstDir回调函数。

编辑:

Function .onVerifyInstDir
StrLen $0 $Desktop
StrCpy $0 $INSTDIR $0
StrCmp $0 $Desktop 0 PathGood
Abort
PathGood:
FunctionEnd