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

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

Новый участник


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

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


Накидал вот такой код:

Код: Выделить весь код
!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-версии" 
next:
IntCmp $Is32 1 is32 next2
is32:
SectionSetText ${SEC_32BIT} "Секция для 32-версии" 
next2:

FunctionEnd
И всё вроде как работает, кроме того что если жмёшь Back и выбираешь другой пункт то на странице компонентов отображаются 2 секции, а не одна.

Цитата:
Т.е. , кроме разных разрядностей самих приложений ещё и разные компоненты для каждой разрядности ? Никогда не встречал такого бардака...
Специфика программы Плагин для графических хостов, которые могут быть как и 32 и 64-битные. Соответственно 32-версия плагина работает с 32-битным хостами, 64 с 64. Секций может быть и мало, в зависимости сколько хостов установлено на компе.
В .onInit происходит поиск этих самых хостов и определение секций. И вот мне надо сделать чтобы при определении секций ещё учитывался и выбор версии плагина.

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