Как включить и использовать текстовое поле в установщике

Я хотел бы включить проверку лицензии в мой установщик NSIS. Простого текстового поля и кнопки мне было бы достаточно, но я не нашел ни одного примера, как включить текстовое поле (текстовое поле) на страницу и как прочитать его значение.

Поможешь мне с этим, пожалуйста?


person jing    schedule 12.07.2010    source источник


Ответы (2)


Вы можете использовать это для создания текстового поля:

!include nsDialogs.nsh
!include LogicLib.nsh
...
Var EDIT
...
${NSD_CreateText} 0 35 100% 12u SomeDefaultText
Pop $EDIT

И получите ввод (не уверен для этого):

System::Call user32::GetWindowText(i$EDIT,t.r0,i${NSIS_MAX_STRLEN})

(Как показано в примере\nsDialogs\example.nsi)

person William Briand    schedule 12.07.2010

У меня была эта проблема, и я нашел другое решение:

!include nsDialogs.nsh
!include LogicLib.nsh

...

Page custom MyPageFunc MyPageFuncLeave

...

Var txt
Var myTextBox

...

Function MyPageFunc
    nsDialogs::Create 1018
    ${NSD_CreateLabel} 0 0 50u 10u "Username:"
    ${NSD_CreateText} 70 0 100u 12u ""
    Pop $myTextBox
    nsDialogs::Show
FunctionEnd

Function MyPageFuncLeave
    ${NSD_GetText} $myTextBox $txt
FunctionEnd

Последующие страницы и их функции имеют доступ к $txt, который содержит текст из текстового поля.

person MaxxAMillion    schedule 28.12.2016