Как включить и использовать текстовое поле в установщике - PullRequest
1 голос
/ 12 июля 2010

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

Помогите ли вы мне с этим, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

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

!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)

1 голос
/ 28 декабря 2016

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

!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, в котором есть текст из текстового поля.

...