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

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

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


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

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


Kotkovets, посоветуй, пожалуйста, по следующим вопросам.

Для страниц инсталлятора я использую .ini файл с настройками элементов на странице.
Я нашел решение типа, где поля создаются напрямую в функции:

${NSD_CreateText} 0 20u 100% 15u "Здесь можно печатать..."
Pop $Text
${NSD_OnChange} $Text fnTextChange

Вопрос 1: как я могу присоединить функцию к событию элемента в моем случае

!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 2" "Flag" "DISABLED" - этот код почему то не делает не активным текстовое поле.

Вопрос 2: как изменить активность элемента?

У меня не получается прописать путь по умолчанию в текстовое поле кодом в функции страницы:
!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 1" "State" "C:\ProgramFolder"

Вопрос 3: как прописать текст в текстовое поле до отображения страницы?


Код скрипта в скрытом тексте
читать дальше »
!include "Library.nsh"
!include "sections.nsh"
!include "MUI.nsh"
!include "LogicLib.nsh"
!include "OLEDB.NSH"

Name "Declarant TS"
Caption "Установка программы Declarant TS"
OutFile "InstallDeclarantTS.exe"
InstallDir "C:\GTD"
ShowInstDetails show

!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_FINISHPAGE_NOAUTOCLOSE

Var IsInstallDB
Var ProgramFolderPath
Var DBFileFolderPath

Var ServerName
Var UserName
Var UserPathword
;Var ServerInstance

;----Страницы шагов--------
PageEx custom
PageCallBacks EnterWelcomePage LeaveWelcomePage
PageExEnd

PageEx custom
PageCallBacks EnterPathPage LeavePathPage
PageExEnd

PageEx custom
PageCallBacks EnterServerAdjustmentsPage LeaveServerAdjustmentsPage
PageExEnd

!insertmacro MUI_PAGE_INSTFILES
;---------------------------------

!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
!insertmacro MUI_LANGUAGE "Russian"

Function .onInit
InitPluginsDir
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "Welcome.ini"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ProgramPath.ini"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ServerAdjustments.ini"
FunctionEnd

Function CheckConnection

${OLEDB}::SQL_Logon "$ServerName" "$UserName" "$UserPathword"
Pop $0
${If} $0 == 0
MessageBox MB_OK "Соединение успешно установлено!"
${Else}
MessageBox MB_OK "Попытка соединения завершилась неудачно!"
${EndIf}

FunctionEnd

Section ""

detailprint "Подключение к серверу $ServerName"

${OLEDB}::SQL_Logon "" "" "" ;"$ServerName" "$UserName" "$UserPathword"
Pop $0
;${If} $0 == 1
DetailPrint $0
Pop $0
DetailPrint $0
;${EndIf}

${OLEDB}::SQL_ExecuteScript "test.sql"
Pop $0
;${If} $0 == 1
Pop $0
DetailPrint $0
;${EndIf}

detailprint ""
detailprint "Копирование файлов"
SetOutPath $ProgramFolderPath
File Files\Antlr3.Runtime.dll
File Files\Castle.Core.dll
File Files\Castle.DynamicProxy2.dll
File Files\Castle.DynamicProxy.dll
File Files\Core.dll
File Files\Core.Impl.dll
File Files\DBConnectionParameters.xml
File Files\Declaration.Domain.Impl.dll
File Files\Declaration.Presenters.Impl.dll
File Files\Declaration.Views.dll
File Files\Declaration.Views.Impl.dll
File Files\DeclarationElectronicCopy.dll
File Files\Domain.Impl.dll
File Files\Enums.dll
File Files\Events.dll
File Files\Handbooks.Domain.dll
File Files\Handbooks.Presenters.dll
File Files\Handbooks.Presenters.Impl.dll
File Files\Handbooks.Views.dll
File Files\Handbooks.Views.Impl.dll
File Files\Iesi.Collections.dll
File Files\Injection.dll
File Files\Injection.Impl.dll
File Files\local.hibernate.cfg.xml
File Files\log4net.dll
File Files\Main.Presenters.dll
File Files\Main.Presenters.Impl.dll
File Files\Main.Views.dll
File Files\Main.Views.Impl.dll
File Files\NHibernate.ByteCode.Castle.dll
File Files\NHibernate.dll
File Files\nhibernate-configuration.xsd
File Files\nhibernate-mapping.xsd
File Files\Ninject.dll
File Files\nunit.core.dll
File Files\nunit.framework.dll
File Files\Print.dll
File Files\ProgramAdjustments.xml
File Files\remote.hibernate.cfg.xml
File Files\Repositories.dll
File Files\Repositories.Impl.dll
File Files\Screen.Presenters.dll
File Files\Screen.Presenters.Impl.dll
File Files\Screen.Views.dll
File Files\Screen.Views.Impl.dll
File Files\Services.dll
File Files\sqlceca35.dll
File Files\sqlcecompact35.dll
File Files\sqlceer35EN.dll
File Files\sqlceer35RU.dll
File Files\sqlceme35.dll
File Files\sqlceoledb35.dll
File Files\sqlceqp35.dll
File Files\sqlcese35.dll
File Files\System.Data.SqlServerCe.dll
File Files\System.Data.SqlServerCe.Entity.dll
File Files\DeclarantTS.exe

CreateShortCut "C:\Documents and Settings\All Users\Рабочий стол\DeclarantTS.lnk" "$ProgramFolderPath\DeclarantTS.exe"
SectionEnd

Function EnterWelcomePage
!insertmacro MUI_HEADER_TEXT "Приветствие" "Вас приветствует мастер установки Declarant TS"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "Welcome.ini"
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd

Function LeaveWelcomePage
!insertmacro MUI_INSTALLOPTIONS_READ $IsInstallDB "Welcome.ini" "Field 1" "State"
FunctionEnd

Function EnterPathPage
!insertmacro MUI_HEADER_TEXT "Выбор путей" "Выберите папки,куда требуется установить программу"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ProgramPath.ini"
!insertmacro MUI_INSTALLOPTIONS_SHOW
!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 1" "State" "C:\ProgramFolder"

${if} $IsInstallDB == 0
;!insertmacro MUI_INSTALLOPTIONS_WRITE "ProgramPath.ini" "Field 2" "Flag" "DISABLED"
${endif}
FunctionEnd

Function LeavePathPage
!insertmacro MUI_INSTALLOPTIONS_READ $ProgramFolderPath "ProgramPath.ini" "Field 1" "State"
!insertmacro MUI_INSTALLOPTIONS_READ $DBFileFolderPath "ProgramPath.ini" "Field 2" "State"
FunctionEnd

Function EnterServerAdjustmentsPage
${if} $IsInstallDB == 0
Abort
${endif}
!insertmacro MUI_HEADER_TEXT "Доступ к серверу" "Укажите настройки доступа к серверу MS SQL, к которой будет подсоединена база данных"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ServerAdjustments.ini"
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd

Function LeaveServerAdjustmentsPage
Call SaveServerAdjustments
FunctionEnd

Function SaveServerAdjustments
!insertmacro MUI_INSTALLOPTIONS_READ $ServerName "ServerAdjustments.ini" "Field 1" "Text"
!insertmacro MUI_INSTALLOPTIONS_READ $UserName "ServerAdjustments.ini" "Field 2" "Text"
!insertmacro MUI_INSTALLOPTIONS_READ $UserPathword "ServerAdjustments.ini" "Field 3" "Text"
!insertmacro MUI_INSTALLOPTIONS_READ $0 "ServerAdjustments.ini" "Field 4" "Text"
${if} $0 <> ""
StrCpy $ServerName "$ServerName\$0"
${endif}
FunctionEnd

Отправлено: 15:56, 02-06-2011 | #1236