» SectionSetFlags: устанавливаем статусы секциям

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 01.09.2011

Данная команда позволяет установить статус секции (отмечена/не отмечена/выделена жирным шрифтом и т.д.)
Сначала привожу список флагов (статусов секций) с их идентификаторами:

Статус             Флаг        Идентификатор
отмечена:          SF_SELECTED   1
группа:            SF_SECGRP     2
жирный шрифт:      SF_BOLD       8
только для чтения: SF_RO         16
развёрнута группа: SF_EXPAND     32

Привожу примеры:

Section "Тестирование" TEST_SEC
SectionEnd

Section
SectionSetFlags ${TEST_SEC} 1
Секция отмечена
SectionEnd

Section /o "Тестирование" TEST_SEC
SectionEnd

Section
SectionSetFlags ${TEST_SEC} 0
Секция не отмечена
SectionEnd

Section "Тестирование" TEST_SEC
SectionIn RO
SectionEnd

Section
SectionSetFlags ${TEST_SEC} 17
Секция отмечена и только для чтения (SF_SELECTED + SF_RO)
SectionEnd

Вы так же можете использовать команду SectionGetFlags, чтобы сначала прочитать статус секции и добавить к этой же секции другой статус:
Добавляем статус нашей секции (только чтение + отмечена для установки)

Section /o "Тестирование" TEST_SEC
SectionIn RO
SectionEnd


Наша секция имела статусы "Не отмечена" и "Только для чтения"
Мы добавляем к статусу "Только для чтения" статус "Отмечена"


 SectionGetFlags ${TEST_SEC} $0
 IntOp $0 $0 | ${SF_SELECTED}
 SectionSetFlags ${TEST_SEC} $0

Так же вы можете использовать варианты типа таких:
Section "Тестирование" TEST_SEC
SectionEnd

Function .onInit
  # При запуске инсталлятора назначаем секции статусы "Отмечена" и "Только для чтения"
  IntOp $0 ${SF_SELECTED} | ${SF_RO}
  SectionSetFlags ${TEST_SEC} $0
FunctionEnd