kotkovets,
Подскажи пожалуйста, а как подкорректировать вышеприведённые примеры, чтобы
при нажатии кнопки отметки всех чекбоксов, "кнопка" становиласьь активной ?
Вот так, при нажатии кнопки отметке всех чекбоксов "кнопка" не активна :
Код:

!include "nsDialogs.nsh"
!include "winmessages.nsh"
!include "logiclib.nsh"
OutFile "test.exe"
Page Custom pre
var dialog
var Checkbox1
var Checkbox2
var Check1
var Check2
var button
var button1
Function pre
nsDialogs::Create 1018
Pop $dialog
${NSD_CreateCheckbox} 0 0 50% 20% "При отметке кнопка станет активной"
Pop $Checkbox1
${NSD_OnClick} $Checkbox1 fnCheckbox1
${NSD_CreateCheckbox} 0 25% 50% 20% "При отметке кнопка станет активной"
Pop $Checkbox2
${NSD_OnClick} $Checkbox2 fnCheckbox2
${NSD_CreateButton} 25% 45% 15% 10% "Кнопка"
Pop $button
EnableWindow $button 0 # start out disabled
${NSD_CreateButton} 40u 105u 140u 15u `Кнопка отметки всех чекбоксов`
Pop $Button1
${NSD_OnClick} $Button1 ButtonClickCheckBox
nsDialogs::Show
FunctionEnd
Function fnCheckbox1
Pop $Checkbox1
Call DisableButton
FunctionEnd
Function fnCheckbox2
Pop $Checkbox2
Call DisableButton
FunctionEnd
Function DisableButton
${NSD_GetState} $Checkbox1 $Check1
${NSD_GetState} $Checkbox2 $Check2
${If} $Check1 == 1
${OrIf} $Check2 == 1 ;логика ИЛИ
EnableWindow $button 1
${Else}
EnableWindow $button 0
${EndIf}
FunctionEnd
Function ButtonClickCheckBox
Pop $Button1
${NSD_GetState} $CheckBox1 $Check1
${NSD_GetState} $CheckBox2 $Check2
${If} $Check1 == 1
${Orif} $Check2 == 1
${NSD_SetState} $CheckBox1 0
${NSD_SetState} $CheckBox2 0
${Else}
${NSD_SetState} $CheckBox1 1
${NSD_SetState} $CheckBox2 1
${EndIf}
FunctionEnd
Section
SectionEnd