如何在NSIS中调用函数内的目录页面?

时间:2013-08-29 13:25:14

标签: nsis

我使用NSIS脚本为我的应用程序创建了exe文件。在我的脚本中,我检查了所选目录的可用空间。

1.如果所选目录没有所需空间,则用户想要更改目录。

2.再次更改目录页面中的目录后,想要检查空闲空间。当所选目录的所需空间可用时,只进入下一页。 所以它将在循环语句中。我尝试了以下脚本

page custom checking
Function checking
Push "\"
push $InstallDir
Call SplitFirstStrPart
pop $R0
${DriveSpace} $R0 "/D=F /S=G" $R0
${While} $R0 <= 2
    MessageBox MB_OK "Expected free space is not availble"
    call directory
${EndWhile}
Function directory

--Here i want to define directory page--
[page directory] we cant use this here
call checking
FunctionEnd

1.如何创建用户定义的目录页?

2.可以多次调用页面目录或MUI_PAGE_DIRECTORY吗?

由于

1 个答案:

答案 0 :(得分:0)

您无法通过功能调用页面,但可以通过调用页面PRE回调中的Abort来跳过页面,也可以jump to any page

您可以拥有所有页面类型的多个页面:

!include MUI.nsh
Var dir1
Var dir2
Function .onInit
StrCpy $dir1 c:\default1
StrCpy $dir2 c:\default2
FunctionEnd
!define MUI_DIRECTORYPAGE_VARIABLE $dir1
!insertmacro MUI_PAGE_DIRECTORY
!define MUI_DIRECTORYPAGE_VARIABLE $dir2
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE English
Section
DetailPrint $dir1
DetailPrint $dir2
SectionEnd