2010-04-11 4 views
1

두 개의 다른 값을 얻기 위해 NSIS에 페이지를 표시하려고합니다. 나는 둘 다 비어 있지 않기를 바란다. 실제로 빈 페이지가 있는지 확인하기 위해 내 페이지 나가기 기능을 사용할 수 없습니다.NSIS 검사 텍스트 상자가 비어 있습니다.

Function CCInstallOpts 
    ReserveFile "cc_installopt.ini" 
    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "cc_installopt.ini" 
    !insertmacro MUI_INSTALLOPTIONS_DISPLAY "cc_installopt.ini"  
FunctionEnd 

내 페이지 휴가 기능 나는 필드의 유효성을 검사 (4, 5)입니다 : 내가 할 입력 $ CC_VCode에 값과 $ CC_CyberID 변수를 저장할

Function CCInstallOptsLeave 

    Push $R0 
    Push $R1 

    !insertmacro MUI_INSTALLOPTIONS_READ $R0 "cc_installopt.ini" "Field4" "State" 
    !insertmacro MUI_INSTALLOPTIONS_READ $R1 "cc_installopt.ini" "Field5" "State" 
    StrCmp $R0 "" mustcomplete 
    StrCmp $R1 "" mustcomplete 
    StrCpy $CC_CyberID $R0 
    StrCpy $CC_VCode $R1 

    goto exitfunc 

mustcomplete: 

    MessageBox MB_OK|MB_ICONEXCLAMATION "Empty not allowed" 
    Abort 

exitfunc: 

    Pop $R1 
    Pop $R0 

FunctionEnd 

참고 나중에 사용 다른 파일 (두 가지를 모두 정의했습니다 :)

Var /GLOBAL CC_VCode 
Var /GLOBAL CC_CyberID 

미리 감사드립니다.

답변

2

당신은

!insertmacro MUI_INSTALLOPTIONS_READ $R0 "cc_installopt.ini" "Field 4" "State" 
!insertmacro MUI_INSTALLOPTIONS_READ $R1 "cc_installopt.ini" "Field 5" "State" 
+0

감사 필드 이름에 공백을 누락, 그했다.! –

관련 문제