Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
vint56, спасибо, надеюсь, что разберусь :) Хотя пока, на первый взгляд, все очень сложным кажется.
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)
Irenis, просто добавь эти строчки только без коментариев
[Setup] куда добавить в секцию setup
Compression=lzma/ultra метод сжатия
SolidCompression=yes солидное сжатие
DiskSpanning=yes разделить на диски
SlicesPerDisk=3 на 3 штуки
DiskSliceSize=1566000000 размер файла имеет ограничения 2,100,000,000 байт
killer000, немного изменил скрипт в сообщении выше. С предыдущим вариантом не запускалось, если распаковать портативную версию.
Просто вариант делить файлы вручную тоже не совсем подходит. »Это самый тот вариант. Меньше проблем.
Автоматизируйте.
Ниже прикрепил пример.
Расформируйте по папкам файлы и запустите 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
его нет в папке портабле!
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,
спасибо тебе огромное, я скопировал скрипт, всё ровно ошибка
скинь ещё разок, если не трудно
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 файл, как их убрать
killer000, надеюсь в последний раз исправил скрипт в сообщении выше.
Это самый тот вариант. Меньше проблем. »
Проблем может и меньше. Просто бывает, что нужно создать архив самой папки с игрой. То есть не файлы архивировать, которые внутри этой папки, а прям целую папку взять и запаковать. А потом чтобы эта папка в таком же виде и распаковалась. Я ж не могу целую папку разделить на части. Ну и еще конечно же хотелось бы, чтоб архивы 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, насколько я понял в этом дело ?
Irenis, http://rghost.ru/57616167
Dinvin4ester, перенеси в самый низ а насчет ограничения 2 гига не как
[Files]
Source: "D:\Games\The Forest\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
vint56, спасибо большое за помощь :) Ваш совет использовать сам inno setup для запаковки помог, вроде бы разобралась. Правда еще осталось пара вопросов. У меня почему то архивы bin получаются как setup-1a.bin, setup-1b.bin, setup-1c.bin, а не setup-1, setup-2, setup-3 (ваш скрипт правда еще не пробовала, не знаю как там будет). Конечно это уже второстепенное, но все равно интересно, почему так. Второй вопрос, чтобы запаковать архив без сжатия и побыстрее, нужно просто написать Compression=none, правильно я поняла? Или может где то как то еще ускорить процесс?
Ну и пока вроде бы последнее, поделитесь ссылкой, где и какой скачать Inno Setup :) Я скачивала здесь с сайта, но как то работает некорректно. Русский язык куда то пропал, и при создании установщика через мастера, тоже почему то нету русского в выборе языка установщика.
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 Скоро я сюда всю справку перепишу :).
Irenis, насчёт Inno Setup сам им пользуюсь скачай inno ultra
http://innoultra.ru/?page_id=70
насчет ускорить процесс только Compression=none
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC