PDA

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


Страниц : 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

Irenis
22-08-2014, 16:57
vint56, спасибо, надеюсь, что разберусь :) Хотя пока, на первый взгляд, все очень сложным кажется.

nik1967
22-08-2014, 17:03
killer000, ;InnoSetupVersion=5.5.1.ee2(u)
[Setup]
AppName=VideoCacheView 2.70 RePack by Killer000
AppVerName=VideoCacheView 2.70
AppVersion=2.70
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\VideoCacheView
DefaultGroupName=VideoCacheView
SetupIconFile={app}\SetupIconFile.ico
UninstallDisplayIcon={app}\SetupIconFile.ico
UninstallDisplayName=VideoCacheView 2.70 RePack by Killer000
UninstallIconFile={app}\Uninstall-8.ico
OutputBaseFilename=VideoCacheView 2.70
Compression=lzma2/ultra64
SolidCompression=yes
Uninstallable=not Uninstallable
DisableProgramGroupPage=yes
DisableReadyPage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

[Languages]
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl";

[Messages]
FinishedLabelNoIcons=Программа [name] распакована на ваш компьютер.

[Files]
Source: "{tmp}\rus.bmp"; Flags: dontcopy solidbreak
Source: "{tmp}\eng.bmp"; Flags: dontcopy solidbreak
Source: "{tmp}\ISSkin.dll"; Flags: dontcopy solidbreak
Source: "{tmp}\skin.cjstyles"; Flags: dontcopy solidbreak
Source: "{app}\SetupIconFile.ico"; DestDir: "{app}"; Attribs: hidden; Check: Normalru or Normalen
Source: "{app}\Uninstall-8.ico"; DestDir: "{app}"; Attribs: hidden; Check: Normalru or Normalen

Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Portableru
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Portableen
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableen
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru and not Is64BitInstallMode
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableen and not Is64BitInstallMode
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Normalru
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Normalen
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalen
Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru and not Is64BitInstallMode
Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalen and not Is64BitInstallMode

[Icons]
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: groupru;
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; IconFilename: {app}\Uninstall-8.ico; MinVersion: 0.0,5.0; Check: groupru;
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: desktopru;
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: groupen;
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; IconFilename: {app}\Uninstall-8.ico; MinVersion: 0.0,5.0; Check: groupen;
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: desktopen;

[Run]
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Normalru; Flags: postinstall skipifsilent nowait
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Normalen; Flags: postinstall skipifsilent nowait
Filename: "{src}\VideoCacheView Portable\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Portableru; Flags: postinstall skipifsilent nowait
Filename: "{src}\VideoCacheView Portable\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Portableen; Flags: postinstall skipifsilent nowait

[UninstallDelete]
Type: filesandordirs; Name: {app};

[code]
var
Sender: TObject;
FlagImage: TBitmapImage;
ComponentPage: TWizardPage;
CheckListBox, CheckListBox2: TNewCheckListBox;

procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';

function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\rus.bmp')) then ExtractTemporaryFile('rus.bmp');
if not FileExists(ExpandConstant('{tmp}\eng.bmp')) then ExtractTemporaryFile('eng.bmp');
if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
if not FileExists(ExpandConstant('{tmp}\Skin.cjstyles')) then ExtractTemporaryFile('Skin.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), '');
Result := True;
end;

procedure OnClick1(Sender: TObject);
begin
if CheckListBox.Checked[1] then
WizardForm.DirEdit.text:= ExpandConstant('{src}\VideoCacheView Portable')
else
if IsWin64 then
WizardForm.DirEdit.text:= ExpandConstant('{pf64}\VideoCacheView')
else
WizardForm.DirEdit.text:= ExpandConstant('{pf}\VideoCacheView');
case WizardForm.CurPageID of
ComponentPage.ID:
if CheckListBox.Checked[1] then begin
WizardForm.NextButton.Caption:= 'Распаковать';
WizardForm.Caption:= FmtMessage('Распаковка — %1', [ExpandConstant('{#SetupSetting("AppName")}')]);
end else begin
WizardForm.NextButton.Caption:= 'Далее >';
WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
end;
end;

procedure OnClick2(Sender: TObject);
begin
if CheckListBox2.Checked[1] then
FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\rus.bmp'))
else
FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\eng.bmp'));
end;

function Uninstallable: boolean;
begin
Result:= CheckListBox.Checked[1];
end;

function Portableru: boolean;
begin
Result:= CheckListBox.Checked[1] and CheckListBox2.Checked[1];
end;

function Portableen: boolean;
begin
Result:= CheckListBox.Checked[1] and CheckListBox2.Checked[2];
end;

function Normalru: boolean;
begin
Result:= CheckListBox.Checked[2] and CheckListBox2.Checked[1];
end;

function Normalen: boolean;
begin
Result:= CheckListBox.Checked[2] and CheckListBox2.Checked[2];
end;

function groupru: boolean;
begin
Result:= CheckListBox2.Checked[1] and CheckListBox.Checked[4];
end;

function desktopru: boolean;
begin
Result:= CheckListBox2.Checked[1] and CheckListBox.Checked[3];
end;

function groupen: boolean;
begin
Result:= CheckListBox2.Checked[2] and CheckListBox.Checked[4];
end;

function desktopen: boolean;
begin
Result:= CheckListBox2.Checked[2] and CheckListBox.Checked[3];
end;

procedure InitializeWizard();
begin
WizardForm.DiskSpaceLabel.Hide;
WizardForm.Color:= clBlack;
ComponentPage:= CreateCustomPage(wpWelcome, 'Выбор типа, компонентов и языка интерфейса', 'Какой тип, компоненты и язык интерфейса должны быть установлены?');

FlagImage:= TBitmapImage.Create(WizardForm);
with FlagImage do begin
Parent:= ComponentPage.Surface;
SetBounds(ScaleX(216),ScaleY(15),ScaleX(220),ScaleY(220));
BackColor:= clNone;
ReplaceColor:= $ffffff;
ReplaceWithColor:= clNone;
end;

CheckListBox:= TNewCheckListBox.Create(WizardForm);
with CheckListBox do begin
Top:= ScaleY(0);
Width:= ComponentPage.SurfaceWidth div 2;
Height:= ComponentPage.SurfaceHeight div 2;
Parent:= ComponentPage.Surface;
BorderStyle:= bsNone;
ParentColor:= True;
ShowLines:= false;
MinItemHeight:= WizardForm.TasksList.MinItemHeight;
WantTabs:= True;
OnClickCheck:= @OnClick1;
AddGroup('Типы и компоненты:', '', 0, nil);
AddRadioButton('Распаковка портативной версии', '', 0, False, True, nil);
AddRadioButton('Установка обычной версии', '', 0, True, True, nil);
AddCheckBox('Ярлык(и) на «Рабочем столе»', '', 1, True, True, False, True, nil);
AddCheckBox('Ярлыки в меню «Пуск»', '', 1, True, True, False, True, nil);
end;

CheckListBox2:= TNewCheckListBox.Create(WizardForm);
with CheckListBox2 do begin
Top:= CheckListBox.Top+CheckListBox.Height;
Width:= ComponentPage.SurfaceWidth div 2;
Height:= ComponentPage.SurfaceHeight div 2;
Parent:= ComponentPage.Surface;
BorderStyle:= bsNone;
ParentColor:= True;
ShowLines:= false;
MinItemHeight:= WizardForm.TasksList.MinItemHeight;
WantTabs:= True;
OnClickCheck:= @OnClick2;
AddGroup('Язык интерфейса:', '', 0, nil);
AddRadioButton('Русский язык интерфейса', '', 0, True, True, nil);
AddRadioButton('Английский язык интерфейса', '', 0, False, True, nil);
end;
OnClick1(Sender);
OnClick2(Sender);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectDir: WizardForm.NextButton.Caption:= 'Установить';
end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
case PageID of
wpSelectDir: Result:= CheckListBox.Checked[1];
end;
end;

procedure DeinitializeSetup();
begin
UnloadSkin;
end;Замени rus.bmp (http://rghost.ru/57610638)

vint56
22-08-2014, 17:04
Irenis, просто добавь эти строчки только без коментариев
[Setup] куда добавить в секцию setup
Compression=lzma/ultra метод сжатия
SolidCompression=yes солидное сжатие
DiskSpanning=yes разделить на диски
SlicesPerDisk=3 на 3 штуки
DiskSliceSize=1566000000 размер файла имеет ограничения 2,100,000,000 байт

nik1967
22-08-2014, 17:24
killer000, немного изменил скрипт в сообщении выше. С предыдущим вариантом не запускалось, если распаковать портативную версию.

Nordek
22-08-2014, 17:42
Просто вариант делить файлы вручную тоже не совсем подходит. »Это самый тот вариант. Меньше проблем.

Автоматизируйте.
Ниже прикрепил пример.
Расформируйте по папкам файлы и запустите Run.bat.
Готовые архивы с расширением .bin, будут находиться в папке Arc: которая, в процессе упаковки будет создана рядом с файлом Run.bat.

killer000
22-08-2014, 17:46
nik1967,
Как это измянить
http://i.imgur.com/3ucBI1O.jpg

killer000
22-08-2014, 18:11
nik1967,
распаковка портабле eng, ошибка на win 7 x64, на win xp x32 всё ок
http://i.imgur.com/JH5f8qI.jpg
его нет в папке портабле!

nik1967
22-08-2014, 18:14
killer000, ещё немного изменил скрипт в сообщении выше.
Чтобы не было рамки вокруг рисунка, используй расширенную версию от рестулз (innoultra (http://innoultra.ru/)). Ну, или используй мою сборку (http://rghost.ru/57612258).
На счёт под цвет скина в нижней части - это надо редактировать сам скин.
распаковка портабле eng, ошибка на win 7 x64, на win xp x32 всё ок »killer000, немного изменил скрипт в сообщении выше. С предыдущим вариантом не запускалось, если распаковать портативную версию. »

ROMKA-1977
22-08-2014, 18:28
Подскажите!
В коде ISDone v0.6 выставил ширину прогрессбаров - 417 при этом проценты скрыты прогрессбарами и их не видно.
Как наложить проценты поверх прогрессбаров ?

killer000
22-08-2014, 18:30
nik1967,
спасибо тебе огромное, я скопировал скрипт, всё ровно ошибка
скинь ещё разок, если не трудно

nik1967
22-08-2014, 19:02
killer000,
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not IsWin64 and Portableen
и замени на
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableen and not Is64BitInstallMode
Скрипт в сообщении выше тоже отредактировал.

killer000
22-08-2014, 19:19
nik1967,
спасибо помогло ошибки нет
появилась другая проблема
в портабле попадают ico файл, как их убрать

nik1967
22-08-2014, 19:34
killer000, надеюсь в последний раз исправил скрипт в сообщении выше.

Irenis
22-08-2014, 20:44
Это самый тот вариант. Меньше проблем. »
Проблем может и меньше. Просто бывает, что нужно создать архив самой папки с игрой. То есть не файлы архивировать, которые внутри этой папки, а прям целую папку взять и запаковать. А потом чтобы эта папка в таком же виде и распаковалась. Я ж не могу целую папку разделить на части. Ну и еще конечно же хотелось бы, чтоб архивы bin были одинакового размера, а вручную так ведь тоже не получится наверное. Вот пример файлов установщика:

Название Размер
Dark Age 0.472/Dark_Age_Setup-2.bin 1.96 GB (2100000000)
Dark Age 0.472/Dark_Age_Setup-3.bin 1.96 GB (2100000000)
Dark Age 0.472/Dark_Age_Setup-1.bin 1.96 GB (2099544832)
Dark Age 0.472/Dark_Age_Setup-4.bin 1.90 GB (2037698129)
Dark Age 0.472/Dark_Age_Setup.exe 444.17 kB (454827)

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

Dinvin4ester
22-08-2014, 21:15
Ребята есть скрипт - http://rghost.ru/57595597. Проблема вот в чем, большие веса не хочет открывать , нажимаешь на сетап и он висит в трее и ничего не открывается, теперь такой вопрос - как обойти ограничение в 2 гб в inno setup, насколько я понял в этом дело ?

vint56
22-08-2014, 21:49
Irenis, http://rghost.ru/57616167

vint56
22-08-2014, 22:16
Dinvin4ester, перенеси в самый низ а насчет ограничения 2 гига не как
[Files]
Source: "D:\Games\The Forest\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

Irenis
22-08-2014, 23:31
vint56, спасибо большое за помощь :) Ваш совет использовать сам inno setup для запаковки помог, вроде бы разобралась. Правда еще осталось пара вопросов. У меня почему то архивы bin получаются как setup-1a.bin, setup-1b.bin, setup-1c.bin, а не setup-1, setup-2, setup-3 (ваш скрипт правда еще не пробовала, не знаю как там будет). Конечно это уже второстепенное, но все равно интересно, почему так. Второй вопрос, чтобы запаковать архив без сжатия и побыстрее, нужно просто написать Compression=none, правильно я поняла? Или может где то как то еще ускорить процесс?
Ну и пока вроде бы последнее, поделитесь ссылкой, где и какой скачать Inno Setup :) Я скачивала здесь с сайта, но как то работает некорректно. Русский язык куда то пропал, и при создании установщика через мастера, тоже почему то нету русского в выборе языка установщика.

Nordek
22-08-2014, 23:41
Irenis, Разбить не сложно, пример:
1 Архив
fwclient\resources\models.pck 1.99 GB (2147483392)

2 Архив
fwclient\resources\litmodels.pck 1006.16 MB (1055045243)
fwclient\resources\surfaces.pck 871.75 MB (914100077)

3 Архив
fwclient\resources\building.pck 687.84 MB (721262764)
fwclient\resources\loddata.pck 64.52 MB (67657600)
fwclient\resources\models.pkx 524.88 MB (550378794)
fwclient\resources\sfx.pck 674.65 MB (707423377)

4 Архив
fwclient\resources\configs.pck 14.03 MB (14717964)
fwclient\resources\gfx.pck 214.04 MB (224439976)
fwclient\resources\grasses.pck 1.98 MB (2079923)
fwclient\resources\interfaces.pck 11.00 MB (11538963)
fwclient\resources\script.pck 5.76 MB (6049439)
fwclient\resources\shaders.pck 6.72 MB (7050168)
fwclient\resources\textures.pck 108.87 MB (114163463)
fwclient\resources\help\book.pck 6.55 MB (6877879)
fwclient\resources\help\script.pck 22.61 KB (23160



Ну и еще конечно же хотелось бы, чтоб архивы bin были одинакового размера, а вручную так ведь тоже не получится наверное. »Вводите значения руками.
Справка:
Inno Setup Help » Секция скриптов » Директивы секции [Setup] » DiskSliceSize:
Возможные значения: 262144 до 2100000000, или max

Описание:
Это определяет максимальное количество байтов на дисковую часть (SETUP-*.BIN файл). Обычно, оно должно быть установлено в общее количество байтов, доступных на дисковых носителях, разделенных на значение директивы SlicesPerDisk секции [Setup], значение которого по умолчанию 1.

Директива игнорируется, если разбиение на диски не включено (директива DiskSpanning секции [Setup].

Чтобы оптимально заполнить DVD диск размером 4.7 Гбайт, используйте:
SlicesPerDisk=3
DiskSliceSize=1566000000

Чтобы оптимально заполнить DVD диск размером 8.5 Гбайт, используйте:
SlicesPerDisk=5
DiskSliceSize=1708200000

Чтобы оптимально заполнить CD (80-минутные) диск размером 700 Мбайт, используйте:
SlicesPerDisk=1
DiskSliceSize=736000000

Чтобы оптимально заполнить 1.44MБ гибкие диски, используйте:
SlicesPerDisk=1
DiskSliceSize=1457664

или хотя бы разбираться в программах:
InnoIDE
Проект » Параметры дистрибутива » "Разбивка на тома"

Inno Script Studio
Проект » Параметры установки » "Разбивка на тома"

хотелось бы научиться делать примерно то же самое, только совершенно не имею понятия, как это делается и через всякие гуглопоиски и прочее не могу найти никакой информации. »Это нужно не гугл ковырять, а смотрите выше.

P.S Скоро я сюда всю справку перепишу :).

vint56
22-08-2014, 23:54
Irenis, насчёт Inno Setup сам им пользуюсь скачай inno ultra
http://innoultra.ru/?page_id=70
насчет ускорить процесс только Compression=none




© OSzone.net 2001-2012