PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [25] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

NewMix
14-04-2015, 19:42
Теперь сделал (http://forum.oszone.net/post-2169372-662.html#) и вроде все правильно но один фиг вылетает теперь другая ошибка. Работаю на расширенной версии.

http://s014.radikal.ru/i329/1504/33/f97c7c251f77.jpg

kotyarko@fb
14-04-2015, 19:52
вылетает теперь другая ошибка »
Не "Files\images\damage1.bmp", а "damage1.bmp", при условии, что в секции [Files] всё правильно записано.

NewMix
14-04-2015, 20:41
Не "Files\images\damage1.bmp", а "damage1.bmp", при условии, что в секции [Files] всё правильно записано. »

Спасибо помогло, только она полупрозрачная. Не подскажите как убрать эту прозрачность?

p.s я новичок и извиняюсь если задаю глупые вопросы

NewMix
14-04-2015, 21:01
Все нашел где прозрачность изменять. Данная строка отвечает за прозрачность GWL_EXSTYLE = (-20);

kotyarko@fb
14-04-2015, 21:56
GWL_EXSTYLE = (-20); »
Нет, эта:
ALPHA_BLEND_LEVEL

MaximilianoPozo
15-04-2015, 13:49
Почему не переносит файл?
[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
FileCopy(ExpandConstant('{app}\{#MyAppName}\backup\paths.xml'), ExpandConstant('{app}\paths.xml'),false);
DelTree(ExpandConstant('{app}\{#MyAppName}'), True, True, True);
ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;

Dodakaedr
15-04-2015, 13:54
Почему не переносит файл? »
Может так?procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
FileCopy(ExpandConstant('{app}\backup\paths.xml'), ExpandConstant('{app}\paths.xml'),false);
DelTree(ExpandConstant('{app}\backup'), True, True, True);
ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;

MaximilianoPozo
15-04-2015, 14:00
Может так?
Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
FileCopy(ExpandConstant('{app}\backup\paths.xml'), ExpandConstant('{app}\paths.xml'),false);
DelTree(ExpandConstant('{app}\backup'), True, True, True);
ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end; »
нет, app это папка с игрой, а в этой папке создается папка инсталлятора

Dodakaedr
15-04-2015, 14:31
нет, app это папка с игрой, а в этой папке создается папка инсталлятора »
Без скрипта можно до Нового года угадывать как Вам нужно, поэтому вот Вам пример:[Setup]
appname=app
AppVersion=1.0
DefaultDirName={pf}\app

[Files]
Source: 1.txt; DestDir: {app}; AfterInstall: backup;

[Code]
procedure backup;
begin
CreateDir(ExpandConstant('{app}\backup'));
//FileCopy(ExpandConstant('{app}\1.txt'), ExpandConstant('{app}\backup\1.txt'), false);
RenameFile(ExpandConstant('{app}\1.txt'), ExpandConstant('{app}\backup\1.txt'));
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
FileCopy(ExpandConstant('{app}\backup\1.txt'), ExpandConstant('{app}\1.txt'),false);
DelTree(ExpandConstant('{app}\backup'), True, True, True);
end;
end;

MaximilianoPozo
15-04-2015, 15:07
Без скрипта можно до Нового года угадывать как Вам нужно, поэтому вот Вам пример: »Спасибо

svs23
15-04-2015, 21:30
возможно сделать несколько страниц выбора компонентов? при этом с сохранением Components: в [Files], т.е. без Check: как в этом примере
[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)

[Code]
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;
это вариант для меня сложноват...

Okta_333
15-04-2015, 21:43
Подскажите пожалуйста, как в 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

Dodakaedr
15-04-2015, 21:47
возможно сделать несколько страниц выбора компонентов? при этом с сохранением Components: в [Files], т.е. без Check: как в этом примере »
Нет, так как вторая страница кастомная, и на нее идет отдельная проверка.

svs23
15-04-2015, 21:50
Нет, так как вторая страница кастомная, и на нее идет отдельная проверка. »
печалька...

svs23
16-04-2015, 22:30
вопрос: есть стандартная форма компонентов wpSelectComponents и костомная ComponentsPage1
проверка на выбор хотя бы одного компонента
if CurPageID = ComponentsPage1.ID then
if WizardSelectedComponents(False) = '' then
begin
MsgBox('Ни один из компонентов не выбран!', mbInformation, MB_OK);
Result:= False;
end;
со стандартной работает, а во с кастомной не хочет
помогите, плиз...

maraby
17-04-2015, 12:19
Здравствуйте!

Ситуация:
нужно допилить чужую инсталку. Несколько дней поисков готовых решений (или требующих минимальных изменений) - безрезультатны
Нет опыта, поэтому обращаюсь за помощью
задачи 3:

1) добавить в список выбора языков - русский язык
http://forum.oszone.net/attachment.php?attachmentid=124451&stc=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.php?attachmentid=124452&stc=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.php?attachmentid=124453&stc=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;



Благодарю!

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

NewMix
17-04-2015, 13:59
Возник такой вопрос. Как мне сделать чтобы при выборе компонентов был значек проигрывания звукого файла как на скрине и как добавить загрузку некоторых файлов из интернета уже в ту категорию которую указали при начале установки?

http://s019.radikal.ru/i612/1504/99/c39e3375571c.jpg

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

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

http://i077.radikal.ru/1504/cf/749a481d68c4.jpg




© OSzone.net 2001-2012