Существует проблема в том, что пользователи могут легко передавать параметры в программу с помощью текстового поля UI NSIS.
Может быть реализовано в C # Winform, но не знает, как использовать его в NSIS.
Я бы хотел получить помощь одним из двух способов.
1. ОДИН:
Я хочу создать одно текстовое поле и отделить текст, который я хочу вставить, в текстовое поле с дефисами.
Пример:
(1) Значение, которое вы хотите поместить в текстовое поле: 12341234123412341234 (
Всего 19 ~ 20 цифр)
(2) Копия 12341234123412341234 (
Всего 19 ~ 20 цифр)
(3) Вставить в текстовое поле
1234-1234-1234-1234-1234 (
Автозаполнение переносов в 4-значных единицах)
(4)
Фактическое значение параметра: 12341234123412341234
Видимые значения в пользовательском интерфейсе: 1234-1234-1234-1234-1234
Описание изображения:
Предполагается, что окно ввода cmd ...
Текстовое поле для отображения в реальном интерфейсе
2. ВТОРАЯ
(1) Копия 12341234123412341234
(2) Вставить в первое поле текстового поля
4-значное автозаполнение
Образец текстового поля NSIS
В настоящее время мой код пытается метод 2.
Мой код:
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
MaxLen=4
[Field 3]
Type=Text
Text=123
Left=74
Right=103
Top=67
Bottom=78
MaxLen=4
[Field 4]
Type=Text
Text=123
Left=121
Right=149
Top=67
Bottom=78
MaxLen=4
[Field 5]
Type=Text
Text=123
Left=164
Right=193
Top=67
Bottom=78
MaxLen=4
[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