Tolian,Специально для вас:
читать дальше »
Код:

!include "MUI.nsh"
!insertmacro MUI_PAGE_COMPONENTS
Page custom Моя_страница
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
!insertmacro MUI_LANGUAGE "Russian"
OutFile "setup.exe"
InstallDir "$PROGRAMFILES\Моя программа"
Section "Настройка программы" test ;test -индефикатор секции
SectionEnd
Function Моя_страница
SectionGetFlags ${test} $9 ;считытывает значение секции и записывает в переменную $9
;если $9 =1 - секция отмечена, $9 =0 - секция не отмечена
StrCmp $9 0 Next ;сравнение: при $9 =0 переход к Next
Initpluginsdir
!insertmacro INSTALLOPTIONS_EXTRACT "Dialog.ini"
!insertmacro MUI_HEADER_TEXT "Установка" "Настройка программы"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "Dialog.ini"
ReadINIStr $0 "$PLUGINSDIR\Dialog.ini" "Field 1" "State" ;чтение секции и помещение результата в переменную $0
ReadINIStr $1 "$PLUGINSDIR\Dialog.ini" "Field 2" "State" ;чтение секции и помещение результата в переменную $1
StrCmp $1 1 0 +2 ;сравнение если $1 =1 - отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox1 "Отмечен" ;запись
StrCmp $0 1 0 +2 ;сравнение если $0 =1 - отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox "Отмечен" ;запись
StrCmp $1 0 0 +2 ;если $1 =0 - не отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox1 "Не oтмечен" ;запись
StrCmp $0 0 0 +2 ;если $0 =0 - не отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox "Не oтмечен" ;запись
ExecShell "Open" "$EXEDIR\Test.ini"
Next:
FunctionEnd
Dialog.ini
Код:

[Settings]
NumFields=2
[Field 1]
Type=Checkbox
Text=Checkbox
Left=18
Right=82
Top=30
Bottom=41
State=0
[Field 2]
Type=Checkbox
Text=Checkbox1
Left=18
Right=82
Top=55
Bottom=65
State=0
В результате рядом с инсталятором файл Test.ini