NSIS检查文本框空无效

时间:2010-04-11 20:31:22

标签: textbox nsis mui custom-pages

我正在尝试在NSIS中显示一个页面以获取两个不同的值。我希望两者都不是空的。页面实际显示尽管我无法获取页面离开功能来正确检查空白字段。

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

我的页面离开功能我验证字段(4和5)是:

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

请注意,我想将输入的值存储到$ CC_VCode和$ CC_Cyber​​ID变量中,以便稍后在不同的文件上使用(我将它们定义为:)

Var /GLOBAL CC_VCode
Var /GLOBAL CC_CyberID

提前致谢。

1 个答案:

答案 0 :(得分:2)

您在字段名称中缺少空格

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