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

R.i.m.s.k.y.
20-08-2014, 18:13
А в скрипте что добавить? »
ничего
указывать для распаковки первый файл многотомного архива .001

vint56
20-08-2014, 18:13
Irenis, только первый остальные он сам подхватит немного опоздал R.i.m.s.k.y. уже ответил тебе

Irenis
20-08-2014, 18:18
Спасибо большое :)

Irenis
20-08-2014, 22:03
Что то я наверное рано радовалась. При распаковке ошибка
116212

vint56
20-08-2014, 22:57
Irenis, покажи строчки на распаковку и названия архивов

Irenis
20-08-2014, 23:03
Строчка распаковки:

if not IS7ZipExtract ( 0, 100, ExpandConstant('{src}\fwclient.bin.001'), ExpandConstant('{app}\'), false, '') then break;

Названия архивов:

fwclient.bin.001
fwclient.bin.002
fwclient.bin.003
fwclient.bin.004

vint56
20-08-2014, 23:17
Irenis, у меня тоже ошибка открытия архива 7z а вот rar распаковывает нормально
ISDone не подерживает распаковку 7z многотомных только у rar а просто 7z без проблем распаковывает
Вариант делить файлы руками

Irenis
21-08-2014, 00:26
vint56, Ясно, спасибо, а то уж думала, что это я как всегда что то делаю не так :)
Только мне rar не подходит, нужно, чтобы архивы были обязательно с расширением bin.
Что можете посоветовать? Паковать чем то другим?

vint56
21-08-2014, 00:30
Irenis, вот вариант
[Files]
Source: Include\7z.exe; DestDir: {tmp}; Flags: dontcopy

procedure CurStepChanged(CurStep: TSetupStep);

ExtractTemporaryFile('7z.exe');

if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), '-o"' + ExpandConstant('{app}') + '" x -y -pPASSWORD "' + ExpandConstant('{src}\bundles.7z.001') + '" ', ExpandConstant('{tmp}'), '...',false) then break;
Будет проблема с делениями на диски что он не будет видет сразу все файлы установка пробежит без распаковки это вариант не поидет


Паковать 7z но файлы делить руками
Относительно каталога app
Создать папку назвать Data-A в ней создать папку fwclient и resources весит она 6.10 GB 1 архив
и в папку положить файлы вот первый архив чтобы он весил 4 гига
models.pck 1.99 GB (2147483392)
litmodels.pck 1006.16 MB (1055045243)
surfaces.pck 871.75 MB (914100077)
textures.pck 108.87 MB (114163463)
Создать папку Data-B в ней создать папку fwclient и resources 2 архив
building.pck 687.84 MB (721262764)
configs.pck 14.03 MB (14717964)
gfx.pck 214.04 MB (224439976)
grasses.pck 1.98 MB (2079923)
interfaces.pck 11.00 MB (11538963)
loddata.pck 64.52 MB (67657600)
models.pkx 524.88 MB (550378794)
script.pck 5.76 MB (6049439)
sfx.pck 674.65 MB (707423377)
shaders.pck 6.72 MB (7050168)
папка help
book.pck 6.55 MB (6877879)
script.pck 22.61 KB (23160

killer000
22-08-2014, 03:40
помогите скрыть выбор папки при распаковке
http://i.imgur.com/t3BxUoO.jpg (http://i.imgur.com/1avMMti.jpg)
вот это убрать
http://i.imgur.com/XebJKdJ.jpg (http://i.imgur.com/jfC2vDy.jpg)
посмотрите скрипт всё правильно

[Setup]
AppName=VideoCacheView 2.70
AppVerName=VideoCacheView 2.70
AppVersion=2.70
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\VideoCacheView
DefaultGroupName=VideoCacheView
SetupIconFile={app}\SetupIconFile.ico
UninstallDisplayIcon={app}\Uninstall-8.ico
UninstallDisplayName=VideoCacheView 2.70 RePack by Killer000
OutputBaseFilename=VideoCacheView 2.70
Compression=lzma2/ultra64
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
Uninstallable=not IsComponentSelected('portab')
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableWelcomePage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

[Files]
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion 64bit; Check: Lang1 and portab
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and portab;
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and portab;
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion 64bit; Check: Lang2 and portab
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and portab
;Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion 32bit; Check: Lang2 and portab
;Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion 32bit; Check: Lang2 and portab
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and install
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and install
;Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode
;Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode
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

[Run]
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait; Check: Lang1 and install
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait; Check: Lang2 and install

[Icons]
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: Comp2
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; MinVersion: 0.0,5.0; Check: Comp2
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: Comp1

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

[CustomMessages]
ru.NameAndVersion=%1, версия %2
ru.AdditionalIcons=Дополнительно:
ru.CreateDesktopIcon=Ярлык на &Рабочем столе
ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
ru.ProgramOnTheWeb=Сайт %1 в Интернете
ru.UninstallProgram=Удалить
ru.LaunchProgram=Запустить %1
ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
ru.AssocingFileExtension=Связывание %1 с файлами %2...
ru.AutoStartProgramGroupDescription=Автозапуск:
ru.AutoStartProgram=Автоматически запускать %1
ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
ru.Shortcut=Ярлыки в меню «Пуск»
ru.ContextMenu=Пункт контекстного меню
ru.Install=Установка обычной версии Русский
ru.Installen=Установка обычной версии Англиский
ru.Portable=Распаковка портативной версии (рядом с инсталлятором) Русский
ru.Portableen=Распаковка портативной версии (рядом с инсталлятором) Англиский


procedure WizardFormCreate(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
with WizardForm do
begin
Color := $121212;
OnCreate := @WizardFormCreate;
end;
end;

procedure WizardFormCreate(Sender: TObject);
begin

end;

var
Component: TWizardPage;
portable,installer,LangRus,LangEng: TNewRadioButton;
FlagImage: TBitmapImage;
Lang,Copmp: TLabel;
CompPanel: TPanel;
Icons,PuskIcons: TNewCheckBox;

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;

function Lang1: Boolean;
begin
Result:= LangRus.Checked;
end;

function Lang2: Boolean;
begin
Result:= LangEng.Checked;
end;

function Comp1: Boolean;
begin
Result:= Icons.Checked;
end;

function Comp2: Boolean;
begin
Result:= PuskIcons.Checked;
end;

function install: Boolean;
begin
Result := installer.Checked;
end;

function portab: Boolean;
begin
Result := portable.Checked;
end;

procedure CopmpClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
portable:
begin
Icons.Checked:=False;
Icons.Enabled:= Icons.Checked;
PuskIcons.Checked:=False;
PuskIcons.Enabled:= PuskIcons.Checked;
end;
installer:
begin
Icons.Checked:=True;
Icons.Enabled:= Icons.Checked;
PuskIcons.Checked:=True;
PuskIcons.Enabled:= PuskIcons.Checked;
end;
end;
end;

procedure LangClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
LangRus:
begin
FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\rus.bmp'));
FlagImage.Left := ScaleX(216);
FlagImage.Top := ScaleY(15);
end;
LangEng:
begin
FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\eng.bmp'));
FlagImage.Left := ScaleX(216);
FlagImage.Top := ScaleY(15);
end;
end;
end;


procedure InitializeWizard();

begin
RedesignWizardForm;
Component := CreateCustomPage(wpLicense, 'Выбор компонентов', 'Какие компоненты должны быть установлены?');
FlagImage := TBitmapImage.Create(WizardForm);
with FlagImage do
begin
Name := 'FlagImage';
Parent := Component.Surface;
Left := ScaleX(300);
Top := ScaleY(15);
Width := ScaleX(220);
Height := ScaleY(220);
end;

CompPanel := TPanel.Create(WizardForm);
with CompPanel do
begin
Parent := Component.Surface;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(200);
Height := ScaleY(100);
BevelOuter := bvNone;
end;

Copmp := TLabel.Create(WizardForm);
with Copmp do
begin
Parent := CompPanel;
Caption := 'Тип и компоненты:';
Left := ScaleX(0);
Top := ScaleY(5);
Width := ScaleX(150);
Height := ScaleY(13);
end;

portable := TNewRadioButton.Create(WizardForm);
with portable do
begin
Parent := CompPanel;
Left := ScaleX(5);
Top := ScaleY(25);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Распаковка портативной версий';
OnClick:=@CopmpClick;
end;

Icons := TNewCheckBox.Create(WizardForm);
with Icons do
begin
Parent := CompPanel;
Left := ScaleX(25);
Top := ScaleY(65);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Ярлык(и) на «Рабочем столе»';
Checked:=True;
end;

PuskIcons := TNewCheckBox.Create(WizardForm);
with PuskIcons do
begin
Parent := CompPanel;
Left := ScaleX(25);
Top := ScaleY(85);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Ярлык в «Пуск меню»';
Checked:=True;
end;

installer := TNewRadioButton.Create(WizardForm);
with installer do
begin
Parent := CompPanel;
Left := ScaleX(5);
Top := ScaleY(45);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Установка обычной версий';
OnClick:=@CopmpClick;
Checked:=True;
end;

Lang := TLabel.Create(WizardForm);
with Lang do
begin
Parent := Component.Surface;
Caption := 'Язык интерфейса:';
Left := ScaleX(0);
Top := ScaleY(120);
Width := ScaleX(150);
Height := ScaleY(13);
end;

LangRus := TNewRadioButton.Create(WizardForm);
with LangRus do
begin
Parent := Component.Surface;
Left := ScaleX(5);
Top := ScaleY(135);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Язык интерфейса Русский';
OnClick:=@LangClick;
Checked:=True;
end;

LangEng := TNewRadioButton.Create(WizardForm);
with LangEng do
begin
Parent := Component.Surface;
Left := ScaleX(5);
Top := ScaleY(155);
Width := ScaleX(200);
Height := ScaleY(17);
Caption := 'Язык интерфейса Английский';
OnClick:=@LangClick;
end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
case PageID of
wpSelectComponents: Result := True;
wpSelectDir: Result := IsComponentSelected('portab') <> False;
end;
end;


И как прикрутить в этот скрипт
авто определеннее разрядности системы
вот так работало Check: Is64BitInstallMode для x64
для x32 not Is64BitInstallMode

в Check можно прописывать несколько значений
так не выходит Check: Is64BitInstallMode, Lang1 and portab
помогите

nik1967
22-08-2014, 10:57
killer000, Сами посудите: Если вам лень что либо читать, то каково тем кто может вам помочь: создавать картинки, искать аналогичные скрипты, подставлять скины, музыку - в общем полностью подстраиваться под ваше чудо-творение.
Поверьте, тем кто вам может помочь - это абсолютно ненужно. Помогать таким людям не будут: Будут просто игнорировать.
Ведь перед выкладыванием чего либо нужно проверить, чтоб не было ошибок. Правильно?
Тогда нужно представлять все файлы.
И ещё раз: вы не читаете.
Это:
Цитата sergey3695:
кидай-те скрипты с файлами. »
написано для всех. Подчеркну если не заметили: с файлами »
Я уже переписал тебе скрипт, но нужны файлы, чтобы
Ведь перед выкладыванием чего либо нужно проверить, чтоб не было ошибок. Правильно?

killer000
22-08-2014, 15:04
nik1967,
спасибо тебе, не могу загрузить исходящая скорость плохая у билайн

nik1967
22-08-2014, 15:31
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}\Uninstall-8.ico
UninstallDisplayName=VideoCacheView 2.70 RePack by Killer000
OutputBaseFilename=VideoCacheView 2.70
Compression=lzma2/ultra64
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
Uninstallable=not Uninstallable
DisableProgramGroupPage=yes
DisableReadyPage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

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

[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}\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: not Is64BitInstallMode and Portableru
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode and Portableen
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: not Is64BitInstallMode and Normalru
Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode and Normalen

[Icons]
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: groupru;
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; 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}"; 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

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

;[CustomMessages]
;ru.NameAndVersion=%1, версия %2
;ru.AdditionalIcons=Дополнительно:
;ru.CreateDesktopIcon=Ярлык на &Рабочем столе
;ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
;ru.ProgramOnTheWeb=Сайт %1 в Интернете
;ru.UninstallProgram=Удалить
;ru.LaunchProgram=Запустить %1
;ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
;ru.AssocingFileExtension=Связывание %1 с файлами %2...
;ru.AutoStartProgramGroupDescription=Автозапуск:
;ru.AutoStartProgram=Автоматически запускать %1
;ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
;ru.Shortcut=Ярлыки в меню «Пуск»
;ru.ContextMenu=Пункт контекстного меню
;ru.Install=Установка обычной версии Русский
;ru.Installen=Установка обычной версии Англиский
;ru.Portable=Распаковка портативной версии (рядом с инсталлятором) Русский
;ru.Portableen=Распаковка портативной версии (рядом с инсталлятором) Англиский

[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 LoadSkin(lpszPath: string; lpszIniFileName: string ); 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 Is64BitInstallMode then
WizardForm.DirEdit.text:= ExpandConstant('{pf32}\VideoCacheView')
else
WizardForm.DirEdit.text:= ExpandConstant('{pf64}\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;
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:= $f0f0f0;
//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, eng.bmp, ISSkin.dll, skin.cjstyles. Сделаю, чтобы рамки белой не было вокруг картинок.

Irenis
22-08-2014, 15:52
Всем привет! Может все таки кто то знает, как можно создать многотомный архив с расширением bin, который бы без проблем распаковался при установке? Программой 7zip архив создается без проблем, но вот распаковываться не хочет. Или может все таки есть скрипт, которым можно было бы распаковывать многотомные архивы, созданные в 7zip? Ну или может другую программу для запаковки посоветуете? Просто вариант делить файлы вручную тоже не совсем подходит.

vint56
22-08-2014, 15:59
Irenis, используй inno setup там есть своё сжатие тогда тебе ненужен будет скрипт isdone
[Setup]: Compression
Возможные значения:

zip
zip/1 до zip/9
bzip
bzip/1 до bzip/9
lzma
lzma/fast
lzma/normal
lzma/max
lzma/ultra (рассмотрите требования к памяти ниже перед использованием)
lzma/ultra64 (рассмотрите требования к памяти ниже перед использованием)
lzma2
lzma2/fast
lzma2/normal
lzma2/max
lzma2/ultra (рассмотрите требования к памяти ниже перед использованием)
lzma2/ultra64 (рассмотрите требования к памяти ниже перед использованием)
none
Значение по умолчанию:
lzma2/max

Описание:
Определяет метод и уровень (1-9) сжатия инсталлятора. Чем выше уровень сжатия, тем медленнее будет создаваться инсталлятор. К тому же может понадобиться больше памяти на сжатие/декомпрессию.

Метод zip быстр в обоих направлениях, не требователен к памяти (требуется менее 1MB для обоих направлений для сжатия на 9 уровне), но сжимает не так хорошо, как другие поддерживаемые методы. zip, как lzma2, имеет единственное достоинство: в отличие от остальных методов он не будет увеличивать несжимаемые файлы (т.е. уже сжатые файлы). Если уровень сжатия не указан, он равен 7.

bzip метод сжатия, который используется компрессором bzip2 [external link]. Он обычно сжимает лучше, чем zip , но работает медленнее в обоих направлениях. Для сжатия требуется более 8 MB памяти, для декомпрессии более 4 MB. Если уровень сжатия не указан, он равен 9.

lzma метод сжатия, который используется компрессором 7-Zip LZMA [external link]. Обычно он сжимает гораздо лучше, чем zip и bzip. Впрочем, это зависит от уровня сжатия - он может оказаться и гораздо медленнее и потребовать гораздо больше памяти. В таблице показано примерное потребление памяти каждого уровня сжатия lzma. Если уровень сжатия не указан, он равен максимальному.

Распаковка (размер словаря) Сжатие
fast (худший) 32 КБ 3 МБ
normal 2 МБ 26 МБ
max (по умолчанию) 8 МБ 95 МБ
ultra 32 МБ 372 МБ
ultra64 (лучший) 64 MБ 676 MБ

lzma2 метод сжатия, который используется компрессором 7-Zip LZMA2 [external link]. LZMA2 - измененная версия LZMA, который предлагает лучшую степень сжатия для несжимаемых данных (случайные данные расширяются приблизительно на 0.005 %, по сравнению с 1.35 % с исходным LZMA), и дополнительно может сжать многократные части больших файлов параллельно, значительно увеличивая скорость сжатия, но с возможным сокращением степени сжатия (см. LZMANumBlockThreads). Как LZMA, LZMA 2 может использовать много памяти; см. вышеупомянутую таблицу. Если уровень сжатия не указан, он равен максимальному.

none означает, что сжатие не используется.

См. также:
SolidCompression
LZMAAlgorithm
LZMABlockSize
LZMADictionarySize
LZMAMatchFinder
LZMANumBlockThreads
LZMANumFastBytes
LZMAUseSeparateProcess

[Setup]: DiskSpanning
Возможные значения:
yes или no (http://forum.oszone.net/topic_yesnonotes.htm)
Значение по умолчанию:
no
Опмсание:
При значении yes будет производиться разбиение на диски. Определяет, создавать ли компилятору один файл SETUP.EXE, или делить его на файлы (SETUP-*.BIN), которые помещаются на дискету, CD-ROM, DVD-ROM или другой носитель. Каждый файл в своем имени будет содержать номер, по которому можно будет определить на какой диск его следует скопировать. Скопируйте SETUP.EXE и SETUP-1.BIN на первый диск, SETUP-2.BIN на второй и т. д.
В этом случае размер каждого файла и число файлов, создаваемых для каждого диска, диктуется директивой DiskSliceSize (http://forum.oszone.net/topic_setup_diskslicesize.htm) и SlicesPerDisk (http://forum.oszone.net/topic_setup_slicesperdisk.htm) секции [Setup]. Другие директивы, отвечающие за разбиение на диски, которые вы захотите внедрить, должны включать директивы DiskClusterSize (http://forum.oszone.net/topic_setup_diskclustersize.htm) и ReserveBytes (http://forum.oszone.net/topic_setup_reservebytes.htm).
Обратите внимание, что нужно обязательно задать этим директивам значение yes, если размер сжатого файла инсталлятора превышает 2,100,000,000 байт, даже если вы не планируете разбивать инсталлятор на диски. (Инсталлятор будет работать правильно, даже если все SETUP-*.BIN файлы будут размещены на одном диске).


[Setup]: DiskSliceSize
Возможные значения:
262144 до 2100000000, или max
Значение по умолчанию:
max (2100000000)
Описание:
Определяет максимальное количество байтов на дисковую часть (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

killer000
22-08-2014, 16:03
nik1967,
я скинул в личку

nik1967,
на xp ошибка
http://i.imgur.com/Pam6qNL.jpg

R.i.m.s.k.y.
22-08-2014, 16:11
на xp ошибка »
дык инно не совфед - тут думать надо!
константа для 64-х битных систем, а хр 32-разрядная

killer000
22-08-2014, 16:25
nik1967,
и скин не работает
http://i.imgur.com/9HMpZk8.jpg

vint56
22-08-2014, 16:31
killer000, завист от компилятора ansi или unicode
//procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload'; раскаментируй если unicode
procedure LoadSkin(lpszPath: string; lpszIniFileName: string ); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload'; эту наоборот закаментируй

killer000
22-08-2014, 16:40
vint56,
Спасибо помогло




© OSzone.net 2001-2012