Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Tamias Ive:
В скрипте есть несколько секций. Как сделать так, чтоб в зависимости от разрядности системы (32-bit, 64-bit) выполнялись те или иные секции, а ненужные даже не отображались в окне выбора компонентов.
Сорри если ответ уже был, но перечитывать 350 страниц форума нет возможности. »
Да пожалуйста:
Код: Выделить весь код
!include "MUI2.nsh"
!include "x64.nsh"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE english
ShowInstDetails show
outfile test.exe

Section "x86" sec_86
SectionEnd

Section "x64" sec_64
SectionEnd

Function .OnInit
  ${If} ${RunningX64} ;running on x64
       !insertmacro UnselectSection ${sec_86} ;снимаем отметку с секции х86
       !insertmacro SetSectionFlag ${sec_86} ${SF_SUBSECEND} ;скрываем секцию х86
  ${Else} ;running on x86
       !insertmacro UnselectSection ${sec_64}
       !insertmacro SetSectionFlag ${sec_64} ${SF_SUBSECEND}
  ${EndIf}
FunctionEnd
хотя я так не делаю - НЕУДОБНО!
в любой секции пишу вот такой макрос:
Код: Выделить весь код
 ${If} ${RunningX64}
    ;тут всегда выполняются команды, если разрядность системы 64-битная
${Else}
    ;тут всегда выполняются команды, если иная разрядность системы
${EndIf}

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Отправлено: 23:45, 12-03-2013 | #331