我正在使用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
答案 0 :(得分:3)
使用.onVerifyInstDir回调函数。
编辑:
Function .onVerifyInstDir
StrLen $0 $Desktop
StrCpy $0 $INSTDIR $0
StrCmp $0 $Desktop 0 PathGood
Abort
PathGood:
FunctionEnd