Как да извикам страницата на директория във функцията в NSIS?

Създадох Exe файл за моето приложение с помощта на NSIS скрипт. В моя скрипт проверих свободното място за избрана директория.

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 няколко пъти?

Благодаря


person Ami    schedule 29.08.2013    source източник


Отговори (1)


Не можете да извикате страница от функция, но можете да пропуснете страница, като извикате Abort в страницата PRE обратно извикване и можете също да прескочите към всяка страница.

Можете да имате няколко страници от всички типове страници:

!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
person Anders    schedule 29.08.2013