Цитата K.A.V.:
Даже если добавлять функцию как я написал ранее, перед самой страничкой с командой EnableWindow, она тоже не делает кнопку не активной »
|
пример на кастомной страничке:
читать дальше »
Код:

!include MUI2.nsh
Page custom nsDialogsPage
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
OutFile "Example.exe"
var dlg
var btn
var next
Function nsDialogsPage
nsDialogs::Create 1018
pop $dlg
GetDlgItem $next $HWNDPARENT 1
EnableWindow $next ${SW_HIDE}
${NSD_CreateButton} 100u 14u 50u 14u "Button"
pop $btn
${NSD_OnClick} $btn BtnClick
nsDialogs::Show
FunctionEnd
Function BtnClick
pop $btn
EnableWindow $next ${SW_SHOW}
SendMessage $next ${BM_CLICK} 0 0
FunctionEnd
Section
SectionEnd
nsis предоставляет к стандартным страничкам 3 функции
1. перед открытием странички
2. когда страничка открыта
3. когда страничка закрывается
пример на стандартной страничке:
читать дальше »
Код:

!include MUI.nsh
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_SHOW COMPONENTS_SHOW
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
outfile test.exe
OutFile "Example.exe"
var next
Function COMPONENTS_SHOW
GetDlgItem $next $HWNDPARENT 1
EnableWindow $next 0
FunctionEnd
Section /o test TEST_SEC
SectionEnd
Function .OnSelChange
SectionGetFlags ${TEST_SEC} $0
StrCmp $0 1 0 +2
EnableWindow $next ${SW_SHOW}
StrCmp $0 0 0 +2
EnableWindow $next ${SW_HIDE}
FunctionEnd