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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 8]

Аватара для El Sanchez

Ветеран


Contributor


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


Конфигурация

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


Изменения
Автор: El Sanchez
Дата: 22-10-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

Пользователь


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

Профиль | Отправить 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
Благодарности: 5

Профиль | Отправить 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


Аватара для Dodakaedr

Ветеран


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

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


Цитата svs23:
возможно сделать несколько страниц выбора компонентов? при этом с сохранением Components: в [Files], т.е. без Check: как в этом примере »
Нет, так как вторая страница кастомная, и на нее идет отдельная проверка.

-------
Inno Setup 5 Ultra Unicode


Отправлено: 21:47, 15-04-2015 | #493


Пользователь


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

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


Цитата Dodakaedr:
Нет, так как вторая страница кастомная, и на нее идет отдельная проверка. »
печалька...

Отправлено: 21:50, 15-04-2015 | #494


Пользователь


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

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить 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
Благодарности: 1

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


Здравствуйте! Возник такой вопрос. Есть разные степени сжатия при создании установщика. А нельзя ли сделать так, чтоб установщик получался заданного размера. Например, компилирую приложение, степень сжатия lzma2/ultra, размер получается 42,1 Мб. А мне нужно, чтоб размер приложения получился 41,5 Мб? Может есть какой то код, в котором можно указывать нужный размер? Спасибо

Отправлено: 13:08, 17-04-2015 | #497


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


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

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


Возник такой вопрос. Как мне сделать чтобы при выборе компонентов был значек проигрывания звукого файла как на скрине и как добавить загрузку некоторых файлов из интернета уже в ту категорию которую указали при начале установки?


Отправлено: 13:59, 17-04-2015 | #498


Пользователь


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

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


Цитата NewMix:
как добавить загрузку некоторых файлов из интернета »
https://code.google.com/p/inno-download-plugin/
http://forum.oszone.net/post-2267694-1626.html

Отправлено: 14:24, 17-04-2015 | #499


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


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

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


svs23, Спасибо позже попробую. А такой вот еще вопрос. Сколько хочу декомпилировать ехе-шники ничего не получается. Выдает постоянно ошибку, как ее исправить? p.s пользуюсь вроде как последними версиями по которые должны открывать ехе-шники созданные в inno setup 5.5


Отправлено: 14:37, 17-04-2015 | #500



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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




 
Переход