Имя пользователя:
Пароль:
 

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

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


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

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


Цитата tony1990:
И всё вроде как работает, кроме того что если жмёшь Back и выбираешь другой пункт то на странице компонентов отображаются 2 секции, а не одна. »
Ну так вы забыли прописать в код секции, которые нужно скрывать...
Т.е. если нужно показать только для x64, то прописываем этим секциям текст и прописываем пустые имена тем секциям, которые не должны отображаться в x64

Код: Выделить весь код
!include "MUI2.nsh"
!include "WinMessages.nsh"
!include "x64.nsh"

!include nsDialogs.nsh

OutFile "Sample.exe"

Var DIALOG
Var TEXT
Var Button1
Var Button2
Var Is32
Var Is64

Page custom nsDialogsPage LeaveDialog
!insertmacro MUI_PAGE_COMPONENTS

!insertmacro MUI_LANGUAGE "English"

Function nsDialogsPage

;${If} ${RunningX64}

	nsDialogs::Create 1018
	Pop $DIALOG
	${NSD_CreateLabel} 10u 10u 100% 29u "Выберите один из следующих типов установки:"
	Pop $TEXT
	${NSD_CreateRadioButton} 20u 50u 100% 12u "64-битная версия программы"
	Pop $Button1
        ${NSD_CreateRadioButton} 20u 75u 100% 12u "32-битная версия программы"
	Pop $Button2

        ${NSD_SetState} $Button1 1
        Call Components64

	${NSD_OnClick} $Button1 Components64
	${NSD_OnClick} $Button2 Components32

	nsDialogs::Show

;${Else}
;        IntOp $Is32 0 + 1
;${EndIf}

FunctionEnd

Function Components64

        IntOp $Is64 0 + 1
        IntOp $Is32 0 + 0

FunctionEnd

Function Components32

        IntOp $Is64 0 + 0
        IntOp $Is32 0 + 1

FunctionEnd

Function LeaveDialog

        Call DefineSections

FunctionEnd


Section /o "" SEC_64BIT 
SectionEnd
             
Section /o "" SEC_32BIT 
SectionEnd


Function DefineSections

IntCmp $Is64 1 is64 next
is64:
SectionSetText ${SEC_64BIT} "Секция для 64-версии" 
SectionSetText ${SEC_32BIT} "" 
next:
IntCmp $Is32 1 is32 next2
is32:
SectionSetText ${SEC_64BIT} "" 
SectionSetText ${SEC_32BIT} "Секция для 32-версии" 
next2:

FunctionEnd
Цитата Edzan:
Можно ли вот этот как нибудь организовать в NSIS? »
Можно, если прочитаете наш справочник и описание команды GetDrives для начала, ну а определить, на каком диске стоит система - не сложно, есть переменная папки Windows, по ней и определите...

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Последний раз редактировалось K.A.V., 31-07-2015 в 13:57.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:52, 31-07-2015 | #1723