Код: Выделить всё
;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. Сделаю, чтобы рамки белой не было вокруг картинок.