Как ограничить количество символов текстового поля в NSIS - PullRequest
0 голосов
/ 16 мая 2019

Я хочу ограничить количество символов в каждом текстовом поле до 4 цифр.

Он может быть реализован в C # Winform, но он не знаком с тем, как использовать его в NSIS.

Попытка действия:

Я поставил метку и направляю ввод к четырем цифрам.

Но это не хорошо.

Я пытался найти информацию через форум NSIS, но не смог ее найти.

Прикрепить изображение текстового поля:

текстовое поле

Код NSIS:

Function Test
  !insertmacro MUI_INSTALLOPTIONS_READ $0 "pageInputLicenseInfo.ini" "Settings" "State"
  ${If} $0 == 9 # btton 
    !insertmacro MUI_INSTALLOPTIONS_READ $R0 "pageInputLicenseInfo.ini" "Field 1" "State"
    !insertmacro MUI_INSTALLOPTIONS_READ $R1 "pageInputLicenseInfo.ini" "Field 2" "State"
    !insertmacro MUI_INSTALLOPTIONS_READ $R2 "pageInputLicenseInfo.ini" "Field 3" "State"
    !insertmacro MUI_INSTALLOPTIONS_READ $R3 "pageInputLicenseInfo.ini" "Field 4" "State"
    !insertmacro MUI_INSTALLOPTIONS_READ $R4 "pageInputLicenseInfo.ini" "Field 5" "State"
    !insertmacro MUI_INSTALLOPTIONS_READ $R5 "pageInputLicenseInfo.ini" "Field 6" "State"

    nsExec::ExecToStack '$INSTDIR\ParamterTestConsole.exe ${PRODUCT_NAME} $R0 $R1$R2$R3$R4$R5'

    Pop $2 ; Exit code
    Pop $3 ; console OUTPUT

    Blah blah..........

FunctionEnd

Файл NSI INI:

; Ini file generated by the HM NIS Edit IO designer.
[Settings]
NumFields=14
Title=test

[Field 1]
Type=Text
Text=1
Left=29
Right=275
Top=46
Bottom=57

[Field 2]
Type=Text
Text=123
Left=30
Right=60
Top=67
Bottom=78

[Field 3]
Type=Text
Text=123
Left=74
Right=103
Top=67
Bottom=78

[Field 4]
Type=Text
Text=123
Left=121
Right=149
Top=67
Bottom=78

[Field 5]
Type=Text
Text=123
Left=164
Right=193
Top=67
Bottom=78

[Field 6]
Type=Text
Text=123
Left=206
Right=236
Top=67
Bottom=78

[Field 7]
Type=Label
Text=IP
Left=1
Right=15
Top=48
Bottom=56

[Field 8]
Type=Label
Text=Key
Left=1
Right=20
Top=70
Bottom=78

[Field 9]
Type=Button
Text=enter
Flags=NOTIFY
Left=225
Right=275
Top=92
Bottom=105

[Field 10]
Type=Label
Text=※ 
Enter four digits.
Left=0
Right=152
Top=26
Bottom=43

[Field 11]
Type=Label
Text=-
Left=154
Right=160
Top=68
Bottom=80

[Field 12]
Type=Label
Text=-
Left=199
Right=205
Top=68
Bottom=76

[Field 13]
Type=Label
Text=-
Left=110
Right=116
Top=68
Bottom=76

[Field 14]
Type=Label
Text=-
Left=64
Right=70
Top=68
Bottom=76

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 16 мая 2019

Как указано в документации , вы можете использовать опцию MaxLen.

Пример:

[Field 1]
Type=Text
Text=1
Left=29
Right=275
Top=46
Bottom=57
MaxLen=4
...