|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1273 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Пользователь Сообщения: 56
|
Профиль | Отправить PM | Цитировать возможно сделать несколько страниц выбора компонентов? при этом с сохранением Components: в [Files], т.е. без Check: как в этом примере
Скрытый текст
[code][Setup]
AppName=Моя программа AppVersion=1.5 DefaultDirName={pf}\Моя программа DirExistsWarning=no AppendDefaultDirName=no [CustomMessages] CompName1=Компонент 1 CompName2=Компонент 2 CompSubtitlesLng=Язык субтитров CompVoiceLng=Язык озвучки CompRussian=Русский CompEnglish=Английский [Components] Name: comp1; Description: "{cm:CompName1}"; Name: comp2; Description: "{cm:CompName2}"; Name: comp3; Description: "{cm:CompName1}"; Name: comp4; Description: "{cm:CompName2}"; Name: comp5; Description: "{cm:CompName1}"; Name: comp6; Description: "{cm:CompName2}"; [Files] //===========================ПЕРВАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\ Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm1(1) Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm1(2) Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm1(4) Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm1(5) //===========================ВТОРАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\ Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm2(1) Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm2(2) Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm2(4) Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm2(5) //===========================ТРЕТЬЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\ Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm3(1) Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm3(2) Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm3(4) Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm3(5) var ComponentsPage1,ComponentsPage2,ComponentsPage3: TWizardPage; SelectComponentsLabel1,SelectComponentsLabel2,SelectComponentsLabel3: TNewStaticText; ComponentsList1,ComponentsList2,ComponentsList3: TNewCheckListBox; procedure ComponentsForm1; begin ComponentsPage1 := CreateCustomPage(wpSelectComponents, 'ПЕРВАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc)); //========================================================================\\ SelectComponentsLabel1 := TNewStaticText.Create(WizardForm); with SelectComponentsLabel1 do begin Parent := ComponentsPage1.Surface; SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42)); AutoSize := False; WordWrap := True; Caption := SetupMessage(msgSelectComponentsLabel2); end; //========================================================================\\ ComponentsList1 := TNewCheckListBox.Create(WizardForm); with ComponentsList1 do begin Parent := ComponentsPage1.Surface; SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169)); AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil); //0 AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //1 AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //2 AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil); //3 AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //4 AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //5 end; end; procedure ComponentsForm2; begin ComponentsPage2 := CreateCustomPage(ComponentsPage1.ID, 'ВТОРАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc)); //========================================================================\\ SelectComponentsLabel2 := TNewStaticText.Create(WizardForm); with SelectComponentsLabel2 do begin Parent := ComponentsPage2.Surface; SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42)); AutoSize := False; WordWrap := True; Caption := SetupMessage(msgSelectComponentsLabel2); end; //========================================================================\\ ComponentsList2 := TNewCheckListBox.Create(WizardForm); with ComponentsList2 do begin Parent := ComponentsPage2.Surface; SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169)); AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil); //0 AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //1 AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //2 AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil); //3 AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //4 AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //5 end; end; procedure ComponentsForm3; begin ComponentsPage3 := CreateCustomPage(ComponentsPage2.ID, 'ТРЕТЬЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc)); //========================================================================\\ SelectComponentsLabel3 := TNewStaticText.Create(WizardForm); with SelectComponentsLabel3 do begin Parent := ComponentsPage3.Surface; SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42)); AutoSize := False; WordWrap := True; Caption := SetupMessage(msgSelectComponentsLabel2); end; //========================================================================\\ ComponentsList3 := TNewCheckListBox.Create(WizardForm); with ComponentsList3 do begin Parent := ComponentsPage3.Surface; SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169)); AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil); //0 AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //1 AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //2 AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil); //3 AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //4 AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil); //5 end; end; function IsComponentsForm1(CompIndex: Integer): Boolean; var i: Integer; begin Result := False; for i := 0 to ComponentsList1.ItemCount - 1 do begin if CompIndex <= (ComponentsList1.ItemCount - 1) then Result := ComponentsList1.Checked[CompIndex]; end; end; //========================================================================\\ function IsComponentsForm2(CompIndex: Integer): Boolean; var i: Integer; begin Result := False; for i := 0 to ComponentsList2.ItemCount - 1 do begin if CompIndex <= (ComponentsList2.ItemCount - 1) then Result := ComponentsList2.Checked[CompIndex]; end; end; //========================================================================\\ function IsComponentsForm3(CompIndex: Integer): Boolean; var i: Integer; begin Result := False; for i := 0 to ComponentsList3.ItemCount - 1 do begin if CompIndex <= (ComponentsList3.ItemCount - 1) then Result := ComponentsList3.Checked[CompIndex]; end; end; procedure InitializeWizard(); begin ComponentsForm1; ComponentsForm2; ComponentsForm3; end; это вариант для меня сложноват... |
Отправлено: 21:30, 15-04-2015 | #491 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста, как в FreeArc правильно прописать вот такой алгоритм?
arc.exe a -ep1 -dses --dirs -s; -lc- -di -i2 -r -mmsc:f:raw=1:bmf=9s:ddsraw=1:bmp=1:mp3=2:lzma,bt4,fb128,mc10000,lc8+precomp+srep:l128+lzma:a1:mfbt4: d200m:fb128:mc100:lc8 |
Отправлено: 21:43, 15-04-2015 | #492 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата svs23:
|
|
------- Отправлено: 21:47, 15-04-2015 | #493 |
Пользователь Сообщения: 56
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
|
|
Отправлено: 21:50, 15-04-2015 | #494 |
Пользователь Сообщения: 56
|
Профиль | Отправить PM | Цитировать вопрос: есть стандартная форма компонентов wpSelectComponents и костомная ComponentsPage1
проверка на выбор хотя бы одного компонента if CurPageID = ComponentsPage1.ID then if WizardSelectedComponents(False) = '' then begin MsgBox('Ни один из компонентов не выбран!', mbInformation, MB_OK); Result:= False; end; помогите, плиз... |
Отправлено: 22:30, 16-04-2015 | #495 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Здравствуйте!
Ситуация: нужно допилить чужую инсталку. Несколько дней поисков готовых решений (или требующих минимальных изменений) - безрезультатны Нет опыта, поэтому обращаюсь за помощью задачи 3: 1) добавить в список выбора языков - русский язык http://forum.oszone.net/attachment.p...1&d=1429261858 Добавила ShowLanguageDialog, добавила в [Languages] язык, в списке - не отображается ![]() UPD. пока писала сообщение, нашла решение этой проблемы (метод резиновой уточки detected ![]() [Setup] ShowUndisplayableLanguages=yes //корректно не отображается, но думаю, это можно полечить локальными настройками системы 2) сделать зависимость инсталяции компонентов (MS SQL Server 2008 или 2012) от версии системы (если Windows 5, 6 в первом случае и >=7 - во втором) NB. "Зависимость иннсталяции" для меня значит, что будет только один возможный RadioButton будет активный http://forum.oszone.net/attachment.p...1&d=1429261858 Нашла такой код if ((GetWindowsVersion shr 24) = 5) and (((GetWindowsVersion shr 16) and $FF) = 1) then begin MsgBox('Windows XP', mbInformation, MB_OK); end else if ((GetWindowsVersion shr 24) = 6) and (((GetWindowsVersion shr 16) and $FF) = 1) then begin MsgBox('Windows 7', mbInformation, MB_OK); end; //Windows 7 = 6.1 //Windows Vista = 6.0 //Windows XP 64-Bit Edition = 5.2 //Windows XP = 5.1 //Windows 2000 = 5.0 3) При выборе уже существующего на компьютере пользователя MS SQL Server необходим список этих самых серверов. Но чесно говоря этот вопрос еще не гуглила. Если кто подскажет где искать/ что делать - буду благодарна ![]() http://forum.oszone.net/attachment.p...1&d=1429261858 весь iss [Setup] AppName=PasCom AppVerName=PasCom DefaultDirName={pf}\PasCom DefaultGroupName=PasCom UninstallDisplayIcon={app}\PasCom.exe Compression=lzma SolidCompression=yes ShowLanguageDialog=yes LanguageDetectionMethod=none ShowUndisplayableLanguages=yes [Languages] Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl"; LicenseFile: "Licencja.rtf" Name: "en"; MessagesFile: "compiler:Default.isl" Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"; LicenseFile: "Licencja.rtf" [Registry] Root: HKCU; Subkey: "PasCom Transport"; Flags: uninsdeletekey [CustomMessages] Demo=Demo pl.Aplikacja=Klient aplikacji en.Aplikacja=Application client ru.Aplikacja=Клиент приложения pl.AplikacjaServer=Aplikacja serwerowa en.AplikacjaServer=Server application ru.AplikacjaServer=Серверное приложение pl.WyborWersji=Wybór wersji programu en.WyborWersji=Choose application version ru.WyborWersji=Версия программы pl.WyborWersjiRozwiniecie=Proszę wybrać wersję aplikacji, a następnie przejść dalej en.WyborWersjiRozwiniecie=Please choose application version and click next ru.WyborWersjiRozwiniecie=Необходимо выбрать версию программы и перейти дальше pl.RodzajInstalacjiTypowa=Typowa en.RodzajInstalacjiTypowa=Typical ru.RodzajInstalacjiTypowa=Стандартная установка pl.RodzajInstalacjiZaawansowana=Zaawansowana en.RodzajInstalacjiZaawansowana=Advanced ru.RodzajInstalacjiZaawansowana=Расширенная pl.RodzajInstalacjiTypowaOpis=Instaluje automatycznie najczęściej używane składniki en.RodzajInstalacjiTypowaOpis=Automatically install the most commonly used components ru.RodzajInstalacjiTypowaOpis=Автоматическая установка наиболее часто используемых компонентов pl.RodzajInstalacjizaawansowanaOpis=Umożliwia samodzielny wybór składników do zainstalowania lub podłączenie bazy danych do istniejących serwerów SQL en.RodzajInstalacjizaawansowanaOpis=Allows you to choose the components to install or connect to an existing database SQL servers ru.RodzajInstalacjizaawansowanaOpis=Позволяет выбрать компоненты для установки или подключение к существующим серверам баз данных SQL. pl.RodzajInstalacjiRozwiniecie=Proszę wybrać rodzaj instalacji, a następnie przejść dalej en.RodzajInstalacjiRozwiniecie=Please choose the type of application and click next ru.RodzajInstalacjiRozwiniecie=Необходимо выбрать тип установки pl.RodzajInstalacji=Wybór rodzaju instalacji en.RodzajInstalacji=Choose instalation type ru.RodzajInstalacji=Выберите тип установки pl.TypSerwera=Wybór wersji serwera MS SQL en.TypSerwera=Choose MS SQL server type ru.TypSerwera=Выберите тип сервера MS SQL pl.TypSerweraRozwiniecie=Proszę wybrać która wersja serwera MS SQL ma zostać zainstalowana en.TypSerweraRozwiniecie=Please choose witch version of MS SQL server want to install ru.TypSerweraRozwiniecie=Пожалуйста, выберите версию сервера MS SQL для установки pl.TypSerwera2008=Microsoft SQL 2008 Express en.TypSerwera2008=Microsoft SQL 2008 Express ru.TypSerwera2008=Microsoft SQL 2008 Express pl.TypSerwera2012=Microsoft SQL 2012 Express en.TypSerwera2012=Microsoft SQL 2012 Express ru.TypSerwera2012=Microsoft SQL 2012 Express pl.TypSerweraBrak=Nie instaluj serwera SQL. Podłącz baze do istniejącej już instancji MS SQL. en.TypSerweraBrak=Do not install the SQL server. Attache databese to existing MS SQL instance. ru.TypSerweraBrak=Не устанавливайте сервер SQL, подключите базу к существующему серверу MS SQL. pl.TypSerweraWybor=Zainstaluj serwer MS SQL en.TypSerweraWybor=Install the MS SQL server ru.TypSerweraWybor=Установить сервер MS SQL pl.PodlaczanieBazy=Podłączenie bazy danych. en.PodlaczanieBazy=Attaching database. ru.PodlaczanieBazy=Подключение базы данных pl.PodlaczanieBazyRozwiniecie=Proszę wybrać parametry zainstalowanego serwera MS SQL w celu prawidłowego podłączenia bazy dancyh systemu PasCom. en.PodlaczanieBazyRozwiniecie=Please choose the parameters of the installed MS SQL server to correctly attaching database of PasCom system. ru.PodlaczanieBazyRozwiniecie=Пожалуйста, выберите параметры установленного сервера MYSQL для корректного подключения базы данных системы PasCom. pl.TypAutoryzacja=Zaloguj się do serwera SQL. en.TypAutoryzacja=Connect to SQL server. ru.TypAutoryzacja=Подключение к серверу SQL. pl.AutoryzacjaWindows=Użyj uwierzytelniania Windows en.AutoryzacjaWindows=Use Windows authorization ru.AutoryzacjaWindows=Авторизация с помощью Windows pl.AutoryzacjaSql=Użyj uwierzytelniania SQL en.AutoryzacjaSql=Use SQL authorization ru.AutoryzacjaSql=Авторизация с помощью SQL pl.NazwaUzytkownika=Nazwa Użytkownika: en.NazwaUzytkownika=Username: ru.NazwaUzytkownika=Имя пользователя: pl.Haslo=Hasło: en.Haslo=Password: ru.Haslo=Пароль: pl.Serwer=Serwer MS SQL: en.Serwer=MS SQL server: ru.Serwer=Сервер MS SQL: pl.KodLicencji=Parametry instalacyjne en.KodLicencji=Parameters of instalation ru.KodLicencji=Параметры установки pl.KodLicencjiRozwiniecie=Proszę podać parametry instalacyjne potrzebne do utworzenia nowej bazy systemu PasCom en.KodLicencjiRozwiniecie=Please provide installation parameters needed to create a new database system PasCom ru.KodLicencjiRozwiniecie=Пожалуйста, укажите параметры установки, необходимые для создания новой базы данных для системы PasCom. pl.SkrotOpis=Nazwa Skrócona pl.SkrotOpis=Short Name ru.SkrotOpis=Сокращенное название pl.PelnaOpis=Pełna nazwa Firmy pl.PelnaOpis=Full name of the Company ru.PelnaOpis=Полное название фирмы pl.PodajKod=Wczytaj kod licencji: pl.PodajKod=Load license code: ru.PodajKod=Укажите код лицензии: pl.Nip=NIP: en.Nip=NIP: ru.Nip=NIP: pl.Miasto=Miasto: en.Miasto=City: ru.Miasto=Город: pl.KodPocztowy=Kod pocztowy: en.KodPocztowy=Postal Code: ru.KodPocztowy=Постовый код: pl.Ulica=Ulica: en.Ulica=Street: ru.Ulica=Улица: pl.Jezyk=polski en.Jezyk=english ru.Jezyk=русский pl.Odinstaluj=Odinstaluj en.Odinstaluj=Uninstall ru.Odinstaluj=Деинсталляция pl.StworzIkone=Stwórz ikonę na pulpicie en.StworzIkone=Create a desktop icon ru.StworzIkone=Создать иконку на рабочем столе pl.DodatkoweIkony="Dodatkowe ikony:" en.DodatkoweIkony="Additional icons:" ru.DodatkoweIkony="Дополнительные иконки:" pl.StworzIkoneWszyscy=dla wszystkich użytkowników en.StworzIkoneWszyscy=for all users ru.StworzIkoneWszyscy=для всех пользователей pl.StworzIkoneObecny=dla obecnego użytkownika en.StworzIkoneObecny=for current user only ru.StworzIkoneObecny=для актуального пользователя pl.StworzIkoneSzybkieUruchamianie=Stwórz ikonę na pasku szybkiego uruchamiania en.StworzIkoneSzybkieUruchamianie=Create a quick launch icon ru.StworzIkoneSzybkieUruchamianie=Создать иконку быстрого запуска pl.KomunikatKodLicencji=Proszę uzupełnić pola: en.KomunikatKodLicencji=Please complete the fields: ru.KomunikatKodLicencji=Пожалуйста, заполните поля: pl.KomunikatSkrot=Nazwa Skrócona en.KomunikatSkrot=Short Name ru.KomunikatSkrot=Краткое название pl.KomunikatPelna=Pełna nazwa Firmy en.KomunikatPelna=Full name of the Company ru.KomunikatPelna=Полное название компании pl.KomunikatNip=NIP en.KomunikatNip=NIP ru.KomunikatNip=NIP pl.KomunikatMiasto=Miasto en.KomunikatMiasto=City ru.KomunikatMiasto=Город pl.KomunikatKodPocztowy=Kod pocztowy en.KomunikatKodPocztowy=Postal Code ru.KomunikatKodPocztowy=Почтовый код pl.KomunikatUlica=Ulica en.KomunikatUlica=Street ru.KomunikatUlica=Улица [Files] Source: "PasCom\*"; DestDir: "{app}"; Flags: recursesubdirs; [Icons] Name: "{group}\PasCom"; Filename: "{app}\PasCom.exe"; Name: "{group}\{cm:Odinstaluj}"; Filename: "{uninstallexe}" Name: "{userdesktop}\PasCom"; Filename: "{app}\PasCom.exe"; Tasks: desktopicon\user; WorkingDir: "{app}" Name: "{commondesktop}\PasCom"; Filename: "{app}\PasCom.exe"; Tasks: desktopicon\common; WorkingDir: "{app}" Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\PasCom"; Filename: "{app}\PasCom.exe"; Tasks: quicklaunchicon; WorkingDir: "{app}" [Tasks] Name: desktopicon; Description: "{cm:StworzIkone}"; GroupDescription: "{cm:StworzIkone}"; Name: desktopicon\common; Description: "{cm:StworzIkoneWszyscy}"; GroupDescription: "{cm:StworzIkone}"; Flags: exclusive Name: desktopicon\user; Description: "{cm:StworzIkoneObecny}"; GroupDescription: "{cm:StworzIkone}"; Flags: exclusive unchecked Name: quicklaunchicon; Description: "{cm:StworzIkoneSzybkieUruchamianie}"; GroupDescription: "{cm:StworzIkone}"; Flags: unchecked [ Code] var WyborWersji : TInputOptionWizardPage; RodzajInstalacji : TInputOptionWizardPage; TypSerwera : TWizardPage; Button: TNewButton; PodlaczanieBazy : TWizardPage; KodLicencji : TWizardPage; CheckBox: TNewCheckBox; SerwerInstancja: TNewComboBox; Licencja: TInputFileWizardPage; NazwaInstancji : String; NazwaZrodlaODBC : String; PlikInstalacyjny : String; Edit, Skrot, Pelna, Nip, Miasto, Ulica, KodPocztowy: TNewEdit; TypAutoryzacji : TLabel; Uzytkownik, Haslo, ProgressBarLabel, Serwer, Kod, SkrotOpis, PelnaOpis, NipOpis, MiastoOpis, KodPocztowyOpis, UlicaOpis: TNewStaticText; PasswordEdit: TPasswordEdit; {Specjalna wersja to wersja dla konkretnego klienta, jezeli ustawimy to na True to zmianiamy jeszcze stala Demo na np. 'Aplikacja dla Szerwal' i mamy} CzySpecjalnaWersja : Boolean; CheckListBox, TypSerweraCheckListBox, AutoryzacjaCheckListBox: TNewCheckListBox; procedure ButtonOnClick(Sender: TObject); var Filename: String; begin GetOpenFileName('', Filename, '', 'Text Documents (*.key)|*.key|', 'txt'); end; procedure CheckListBoxClick(Sender: TObject); begin //MsgBox('You clicked the image!', mbInformation, mb_Ok); Edit.Enabled := AutoryzacjaCheckListBox.ItemIndex = 1; PasswordEdit.Enabled := AutoryzacjaCheckListBox.Itemindex = 1; Haslo.Enabled := AutoryzacjaCheckListBox.Itemindex = 1; Uzytkownik.Enabled := AutoryzacjaCheckListBox.Itemindex = 1; end; procedure InitializeWizard; begin { Create the pages } WyborWersji := CreateInputOptionPage(wpLicense, ExpandConstant('{cm:WyborWersji}'), '', ExpandConstant('{cm:WyborWersjiRozwiniecie}'), True, False); WyborWersji.Add(ExpandConstant('{cm:Demo}')); WyborWersji.Add(ExpandConstant('{cm:Aplikacja}')); WyborWersji.Add(ExpandConstant('{cm:AplikacjaServer}')); WyborWersji.SelectedValueIndex := 0; CzySpecjalnaWersja := False; RodzajInstalacji := CreateInputOptionPage(WyborWersji.ID, ExpandConstant('{cm:RodzajInstalacji}'), '', ExpandConstant('{cm:RodzajInstalacjiRozwiniecie}'), True, False); RodzajInstalacji.Add(ExpandConstant('{cm:RodzajInstalacjiTypowa}')); RodzajInstalacji.Add(ExpandConstant('{cm:RodzajInstalacjiZaawansowana}')); RodzajInstalacji.SelectedValueIndex := 0; //********************************************Wybor serwera TypSerwera := CreateCustomPage(RodzajInstalacji.ID, ExpandConstant('{cm:TypSerwera}'), ExpandConstant('{cm:TypSerweraRozwiniecie}')); TypSerweraCheckListBox := TNewCheckListBox.Create(TypSerwera); TypSerweraCheckListBox.Width := TypSerwera.SurfaceWidth; TypSerweraCheckListBox.Height := ScaleY(97); TypSerweraCheckListBox.BorderStyle := bsNone; TypSerweraCheckListBox.ParentColor := True; TypSerweraCheckListBox.MinItemHeight := WizardForm.TasksList.MinItemHeight; TypSerweraCheckListBox.ShowLines := False; TypSerweraCheckListBox.WantTabs := True; TypSerweraCheckListBox.Parent := TypSerwera.Surface; TypSerweraCheckListBox.AddRadioButton(ExpandConstant('{cm:TypSerweraWybor}'), '', 0, True, True, nil); // TypSerweraCheckListBox.AddRadioButton(ExpandConstant('{cm:TypSerwera2008}'), '', 1, True, True, nil); TypSerweraCheckListBox.AddRadioButton(ExpandConstant('{cm:TypSerwera2012}'), '', 1, False, True, nil); TypSerweraCheckListBox.AddRadioButton(ExpandConstant('{cm:TypSerweraBrak}'), '', 0, False, True, nil); PodlaczanieBazy := CreateCustomPage(Typserwera.ID, ExpandConstant('{cm:PodlaczanieBazy}'), ExpandConstant('{cm:PodlaczanieBazyRozwiniecie}')); TypAutoryzacji := TLabel.Create(PodlaczanieBazy); with TypAutoryzacji do begin Parent := PodlaczanieBazy.Surface; Caption := ExpandConstant('{cm:TypAutoryzacja}'); Left := ScaleX(24); Top := ScaleY(72); Width := ScaleX(87); Height := ScaleY(13); Enabled := False; end; AutoryzacjaCheckListBox := TNewCheckListBox.Create(PodlaczanieBazy); AutoryzacjaCheckListBox.Width := PodlaczanieBazy.SurfaceWidth; AutoryzacjaCheckListBox.Height := ScaleY(97); AutoryzacjaCheckListBox.BorderStyle := bsNone; AutoryzacjaCheckListBox.ParentColor := True; AutoryzacjaCheckListBox.MinItemHeight := WizardForm.TasksList.MinItemHeight; AutoryzacjaCheckListBox.ShowLines := False; AutoryzacjaCheckListBox.WantTabs := True; AutoryzacjaCheckListBox.Parent := PodlaczanieBazy.Surface; AutoryzacjaCheckListBox.AddRadioButton(ExpandConstant('{cm:AutoryzacjaWindows}'), '', 0, True, True, nil); AutoryzacjaCheckListBox.OnClick := @CheckListBoxClick; Edit := TNewEdit.Create(PodlaczanieBazy); Edit.HideSelection := false; Edit.Top := ScaleY(50); Edit.Left := ScaleX(130); Edit.Width := ScaleX(173); Edit.Parent := PodlaczanieBazy.Surface; Edit.Enabled := False; PasswordEdit := TPasswordEdit.Create(PodlaczanieBazy); PasswordEdit.Top := + ScaleY(75); PasswordEdit.Width := ScaleX(173); PasswordEdit.Left := ScaleX(130); PasswordEdit.Parent := PodlaczanieBazy.Surface; PasswordEdit.Enabled := False; Uzytkownik := TNewStaticText.Create(PodlaczanieBazy); Uzytkownik.Top:= ScaleY(50); Uzytkownik.Left := ScaleX(25); Uzytkownik.Width := PodlaczanieBazy.SurfaceWidth div 2 - ScaleX(8); Uzytkownik.Caption := ExpandConstant('{cm:NazwaUzytkownika}'); Uzytkownik.Parent := PodlaczanieBazy.Surface; Uzytkownik.Enabled := False; Haslo := TNewStaticText.Create(PodlaczanieBazy); //Haslo.Left := PodlaczanieBazy.SurfaceWidth - Uzytkownik.Width; Haslo.Top := + ScaleY(75); Haslo.Left := ScaleX(25); Haslo.Width := Uzytkownik.Width; Haslo.Caption := ExpandConstant('{cm:Haslo}'); Haslo.Parent := PodlaczanieBazy.Surface; Haslo.Enabled := False; AutoryzacjaCheckListBox.AddRadioButton(ExpandConstant('{cm:AutoryzacjaSql}'), '', 0, False, True, nil); SerwerInstancja := TNewComboBox.Create(PodlaczanieBazy); SerwerInstancja.Width := PodlaczanieBazy.SurfaceWidth; SerwerInstancja.Parent := PodlaczanieBazy.Surface; SerwerInstancja.Top := + ScaleY(130); SerwerInstancja.Width := ScaleX(173); SerwerInstancja.Left := ScaleX(130); //SerwerInstancja.Style := csDropDownList; //SerwerInstancja.Items.Add('Wybór instancji'); SerwerInstancja.ItemIndex := 0; Serwer := TNewStaticText.Create(PodlaczanieBazy); Serwer.Top := + ScaleY(130); Serwer.Left := ScaleX(25); Serwer.Width := SerwerInstancja.Width; Serwer.Caption := ExpandConstant('{cm:Serwer}'); Serwer.Parent := PodlaczanieBazy.Surface; KodLicencji := CreateCustomPage(PodlaczanieBazy.ID, ExpandConstant('{cm:KodLicencji}'), ExpandConstant('{cm:KodLicencjiRozwiniecie}')); Button := TNewButton.Create(KodLicencji); //Button.Top := ScaleY(10); Button.Left := ScaleY(120); Button.Width := ScaleX(90); Button.Height := ScaleY(23); Button.Caption := 'Otwórz'; Button.OnClick := @ButtonOnClick; Button.Parent := KodLicencji.Surface; Kod := TNewStaticText.Create(KodLicencji); Kod.Top:= ScaleY(2); Kod.Caption := ExpandConstant('{cm:PodajKod}'); Kod.Parent := KodLicencji.Surface; Skrot := TNewEdit.Create(KodLicencji); Skrot.Top := ScaleY(40); Skrot.Left := ScaleX(100); Skrot.Width := ScaleX(173); Skrot.Parent := KodLicencji.Surface; Skrot.Enabled := True; SkrotOpis := TNewStaticText.Create(KodLicencji); SkrotOpis.Top:= ScaleY(40); //SkrotOpis.Left := ScaleX(25); SkrotOpis.Caption := ExpandConstant('{cm:SkrotOpis}'); SkrotOpis.Parent := KodLicencji.Surface; SkrotOpis.Enabled := True; Pelna := TNewEdit.Create(KodLicencji); Pelna.Top := ScaleY(65); Pelna.Left := ScaleX(100); Pelna.Width := ScaleX(173); Pelna.Parent := KodLicencji.Surface; Pelna.Enabled := True; PelnaOpis := TNewStaticText.Create(KodLicencji); PelnaOpis.Top:= ScaleY(65); //PelnaOpis.Left := ScaleX(25); PelnaOpis.Caption := ExpandConstant('{cm:PelnaOpis}'); PelnaOpis.Parent := KodLicencji.Surface; PelnaOpis.Enabled := True; Nip := TNewEdit.Create(KodLicencji); Nip.Top := ScaleY(90); Nip.Left := ScaleX(100); Nip.Width := ScaleX(173); Nip.Parent := KodLicencji.Surface; Nip.Enabled := True; NipOpis := TNewStaticText.Create(KodLicencji); NipOpis.Top:= ScaleY(90); //PelnaOpis.Left := ScaleX(25); NipOpis.Caption := ExpandConstant('{cm:Nip}'); NipOpis.Parent := KodLicencji.Surface; NipOpis.Enabled := True; Miasto := TNewEdit.Create(KodLicencji); Miasto.Top := ScaleY(115); Miasto.Left := ScaleX(100); Miasto.Width := ScaleX(173); Miasto.Parent := KodLicencji.Surface; Miasto.Enabled := True; MiastoOpis := TNewStaticText.Create(KodLicencji); MiastoOpis.Top:= ScaleY(115); //PelnaOpis.Left := ScaleX(25); MiastoOpis.Caption := ExpandConstant('{cm:Miasto}'); MiastoOpis.Parent := KodLicencji.Surface; MiastoOpis.Enabled := True; KodPocztowy := TNewEdit.Create(KodLicencji); KodPocztowy.Top := ScaleY(140); KodPocztowy.Left := ScaleX(100); KodPocztowy.Width := ScaleX(173); KodPocztowy.Parent := KodLicencji.Surface; KodPocztowy.Enabled := True; KodPocztowyOpis := TNewStaticText.Create(KodLicencji); KodPocztowyOpis.Top:= ScaleY(140); //PelnaOpis.Left := ScaleX(25); KodPocztowyOpis.Caption := ExpandConstant('{cm:KodPocztowy}'); KodPocztowyOpis.Parent := KodLicencji.Surface; KodPocztowyOpis.Enabled := True; Ulica := TNewEdit.Create(KodLicencji); Ulica.Top := ScaleY(165); Ulica.Left := ScaleX(100); Ulica.Width := ScaleX(173); Ulica.Parent := KodLicencji.Surface; Ulica.Enabled := True; UlicaOpis := TNewStaticText.Create(KodLicencji); UlicaOpis.Top:= ScaleY(165); //PelnaOpis.Left := ScaleX(25); UlicaOpis.Caption := ExpandConstant('{cm:Ulica}'); UlicaOpis.Parent := KodLicencji.Surface; UlicaOpis.Enabled := True; end; function ShouldSkipPage(PageID: Integer): Boolean; begin { Skip pages that shouldn't be shown } Result := False; if (PageID = RodzajInstalacji.ID) and (Wyborwersji.SelectedValueIndex <> 2) then Result := True; if (PageID = TypSerwera.ID) and ((RodzajInstalacji.SelectedValueIndex <> 1) or (Wyborwersji.SelectedValueIndex <> 2)) then Result := True; if (PageID = PodlaczanieBazy.ID) and ((not TypSerweraCheckListBox.Checked[3]) or (RodzajInstalacji.SelectedValueIndex <> 1) or (Wyborwersji.SelectedValueIndex <> 2)) then Result := True; if (PageID = KodLicencji.ID) and (Wyborwersji.SelectedValueIndex <> 2) then Result := True; end; function NextButtonClick(CurPageID: Integer): Boolean; var ResultCode : Integer; BrakWypelnienia : String; begin Result := True; BrakWypelnienia := ExpandConstant('{cm:KomunikatKodLicencji}'); { Validate certain pages before allowing the user to proceed } if CurPageID = RodzajInstalacji.ID then begin MsgBox('You clicked the image!', mbInformation, mb_Ok); end if CurPageID = KodLicencji.ID then begin if Skrot.Text = nil then begin BrakWypelnienia := BrakWypelnienia + #13#10#13#10 + ExpandConstant('{cm:KomunikatSkrot}'); Result := False; end; if Pelna.Text = nil then begin BrakWypelnienia := BrakWypelnienia + #13#10 + ExpandConstant('{cm:KomunikatPelna}'); Result := False; end; if Nip.Text = nil then begin BrakWypelnienia := BrakWypelnienia + #13#10 + ExpandConstant('{cm:KomunikatNip}'); Result := False; end; if Miasto.Text = nil then begin BrakWypelnienia := BrakWypelnienia + #13#10 + ExpandConstant('{cm:KomunikatMiasto}'); Result := False; end; if KodPocztowy.Text = nil then begin BrakWypelnienia := BrakWypelnienia + #13#10 + ExpandConstant('{cm:KomunikatKodPocztowy}'); Result := False; end; if Ulica.Text = nil then begin BrakWypelnienia := BrakWypelnienia + #13#10 + ExpandConstant('{cm:KomunikatUlica}'); Result := False; end; if Result = False then MsgBox(BrakWypelnienia, mbInformation, mb_Ok) end if CurPageID = WyborWersji.ID then begin if WyborWersji.SelectedValueIndex = 0 then begin {Specjalna wersja to wersja dla konkretnego klienta} if CzySpecjalnaWersja then begin NazwaInstancji := 'PASCOM'; NazwaZrodlaODBC := 'pascom'; end else begin NazwaInstancji := 'PASCOM_DEMO'; NazwaZrodlaODBC := 'pascom_demo'; PlikInstalacyjny := 'SQLEXPR_x86_ENU.exe'; end; Exec(GetCurrentDir + '\Microsoft\' + PlikInstalacyjny, '/QS /ACTION=Install /INSTANCENAME=' + NazwaInstancji + ' /INSTANCEID=' + NazwaInstancji + ' /QUIETSIMPLE=True /SKIPRULES=RebootRequiredCheck /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /FEATURES=SQLENGINE /SQLSVCSTARTUPTYPE=Automatic /SECURITYMODE=SQL /SAPWD=S3l3cti0n@', '',SW_SHOW,ewWaitUntilTerminated, ResultCode); end else if WyborWersji.SelectedValueIndex = 2 then begin end else begin NazwaInstancji := 'PASCOM'; NazwaZrodlaODBC := 'pascom'; end end; if Assigned(RodzajInstalacji) and (CurPageID = RodzajInstalacji.ID) then begin if RodzajInstalacji.SelectedValueIndex = 0 then begin NazwaInstancji := 'PASCOM'; NazwaZrodlaODBC := 'pascom'; Exec(GetCurrentDir + '\Installer.exe', '"' + ExpandConstant('{pf}') + '\Microsoft SQL Server" "' + NazwaInstancji + '" ', '',SW_SHOW,ewWaitUntilTerminated, ResultCode); end else if RodzajInstalacji.SelectedValueIndex = 1 then begin end end; if CurPageID = wpFinished then begin RegWriteStringValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\ODBC Data Sources', NazwaZrodlaODBC, 'SQL Server'); RegWriteStringValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\' + NazwaZrodlaODBC, 'Server', 'localhost\' + NazwaInstancji); RegWriteStringValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\' + NazwaZrodlaODBC, 'Database', 'pascom'); RegWriteStringValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\' + NazwaZrodlaODBC, 'Driver', ExpandConstant('{syswow64}') + '\SQLSRV32.dll'); RegWriteStringValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\' + NazwaZrodlaODBC, 'LastUser', 'pascom'); RegWriteStringValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\' + NazwaZrodlaODBC, 'Language', ExpandConstant('{cm:Jezyk}')); if NazwaZrodlaODBC = 'pascom' then begin RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','eUsername_Text','admin'); RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','eDatabase_Text','pascom'); end else begin RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','eUsername_Text','demo'); RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','eDatabase_Text','pascom_demo'); end; RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','edProductIdent_Text','pascom'); RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','edProductKey_Text','S3l3cti0n@'); RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','combLang_ItemIndex','0'); RegWriteStringValue(HKEY_CURRENT_USER, 'PasCom Transport\Login','cbServerType_ItemIndex','1'); end; end; procedure DeinitializeUninstall(); begin RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER,'Software\ODBC\ODBC.INI\pascom'); RegDeleteValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\ODBC Data Sources\','pascom'); RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER,'Software\ODBC\ODBC.INI\pascom_demo'); RegDeleteValue(HKEY_CURRENT_USER, 'Software\ODBC\ODBC.INI\ODBC Data Sources\','pascom_demo'); end; //*********************************Sprawdzenie wersiji Windows // function InitializeSetup: Boolean; var Version: TWindowsVersion; S: String; begin GetWindowsVersionEx(Version); // Disallow installation on Home edition of Windows if Version.SuiteMask and VER_SUITE_PERSONAL <> 0 then begin SuppressibleMsgBox('This program cannot be installed on a Home edition of Windows.', mbCriticalError, MB_OK, MB_OK); Result := False; Exit; end; // Disallow installation on domain controllers if Version.ProductType = VER_NT_DOMAIN_CONTROLLER then begin SuppressibleMsgBox('This program cannot be installed on domain controllers.', mbCriticalError, MB_OK, MB_OK); Result := False; Exit; end; // On Windows 2000, check for SP4 if Version.NTPlatform and (Version.Major = 5) and (Version.Minor = 0) and (Version.ServicePackMajor < 4) then begin SuppressibleMsgBox('When running on Windows 2000, Service Pack 4 is required.', mbCriticalError, MB_OK, MB_OK); Result := False; Exit; end; // On Windows XP, check for SP2 if Version.NTPlatform and (Version.Major = 5) and (Version.Minor = 1) and (Version.ServicePackMajor < 2) then begin SuppressibleMsgBox('When running on Windows XP, Service Pack 2 is required.', mbCriticalError, MB_OK, MB_OK); Result := False; Exit; end; Result := True; end; Благодарю! |
Отправлено: 12:19, 17-04-2015 | #496 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Здравствуйте! Возник такой вопрос. Есть разные степени сжатия при создании установщика. А нельзя ли сделать так, чтоб установщик получался заданного размера. Например, компилирую приложение, степень сжатия lzma2/ultra, размер получается 42,1 Мб. А мне нужно, чтоб размер приложения получился 41,5 Мб? Может есть какой то код, в котором можно указывать нужный размер? Спасибо
![]() |
Отправлено: 13:08, 17-04-2015 | #497 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Возник такой вопрос. Как мне сделать чтобы при выборе компонентов был значек проигрывания звукого файла как на скрине и как добавить загрузку некоторых файлов из интернета уже в ту категорию которую указали при начале установки?
![]() |
Отправлено: 13:59, 17-04-2015 | #498 |
Пользователь Сообщения: 56
|
Профиль | Отправить PM | Цитировать Цитата NewMix:
http://forum.oszone.net/post-2267694-1626.html |
|
Отправлено: 14:24, 17-04-2015 | #499 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать svs23, Спасибо позже попробую. А такой вот еще вопрос. Сколько хочу декомпилировать ехе-шники ничего не получается. Выдает постоянно ошибку, как ее исправить? p.s пользуюсь вроде как последними версиями по которые должны открывать ехе-шники созданные в inno setup 5.5
![]() |
Отправлено: 14:37, 17-04-2015 | #500 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|