Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: WinstAn70
Дата сообщения: 17.03.2009 05:19
msatmb
Дай исходник rep.exe попробую посмотреть! может там еще dll есть какие!?
Автор: skeptik_vdm
Дата сообщения: 17.03.2009 11:30
WinstAn70
Не к rep.exe не идет ни каких dll-лок только ехе!!!
Автор: WinstAn70
Дата сообщения: 17.03.2009 12:19
skeptik_vdm
К тому коду что ты давал прилепил лого + прогресс бар второй щя сплешь еще запихаю и все готовая форма! Может подкинешь Rep.exe
Автор: DeKaNszn
Дата сообщения: 17.03.2009 12:33
Нашел ответ на свой вопрос:

Цитата:
Как можно при определенном условии выбрать компонент (если пользователь не выбрал его)?


может кому-то пригодится: [no]WizardForm.ComponentsList.Checked[I]:=true;[/no]
Автор: skeptik_vdm
Дата сообщения: 17.03.2009 13:01
WinstAn70
Можешь дать скрипт на лого и кто автор этого скрипта?!?!!?

Добавлено:
И вот сам Rep.exe
http://www.rapidshare.ru/967249
Автор: WinstAn70
Дата сообщения: 17.03.2009 13:38
skeptik_vdm
Скрипт дам,но может я неправильно выразился не лого а кнопка как у Злого деда.!
А за Rep спс!
**************************
Вот тут исходники rep.exe + Лист параметров + Пример! Пользуйтесь!

Автор: skeptik_vdm
Дата сообщения: 17.03.2009 15:29
WinstAn70

Цитата:
Скрипт дам,но может я неправильно выразился не лого а кнопка как у Злого деда.

Скинь пожалуйста!!!
Автор: WinstAn70
Дата сообщения: 17.03.2009 16:13
Без сплеша! Теперь расскажи как менять вес игры в этом коде!
[more=Скрипт..]
[Setup]
AppName=Mirror's Edge
AppVerName=Mirror's Edge
DefaultDirName={pf}\EA Games\Mirror's Edge
OutputDir=Out
DefaultGroupName=EA Games\Mirror's Edge
UninstallFilesDir={app}\uninstall
InternalCompressLevel=ultra64
SolidCompression=true
Compression=lzma/ultra64
ArchitecturesInstallIn64BitMode=x64
ArchitecturesAllowed=x64 x86
RestartIfNeededByRun=false
DisableReadyPage=true
UsePreviousTasks=false
DirExistsWarning=no
UsePreviousAppDir=false
DisableProgramGroupPage=true
UsePreviousGroup=false
UsePreviousSetupType=false
FlatComponentsList=false
DiskSpanning=true
DiskClusterSize=1024
DiskSliceSize=1566000000
AppID={{AEDBD563-24BB-4EE3-8366-A654DAC2D988}

[LangOptions]
WelcomeFontName=Tahoma
WelcomeFontSize=11

[Files]
Source: gifctrl.dll; Flags: dontcopy
Source: logo3.gif; Flags: dontcopy

[Icons]
Name: {group}\Удалить игру; Filename: {uninstallexe}
Name: {group}\Mirror's Edge™; Filename: {app}\Binaries\MirrorsEdge.exe; WorkingDir: {app}\Binaries\
Name: {group}\Readme; Filename: {app}\Support\readme.ru.txt
Name: {group}\Техническая поддержка; Filename: {app}\Support\EA Help\Electronic_Arts_Technical_Support.htm
Name: {group}\Веб-сайт Mirror's Edge™; Filename: http://www.mirrorsedge.com/
Name: {group}\Поиск обновлений Mirror's Edge™; Filename: http://www.mirrorsedge.com/DLC
Name: {commondesktop}\Mirror's Edge™; Filename: {app}\Binaries\MirrorsEdge.exe; WorkingDir: {app}\Binaries\; Check: MakeDesktopIcon

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


[Run]
Filename: {src}\Game.exe; Parameters: -x -y -s2 -d.; WorkingDir: {app}\Game\; StatusMsg: Идет распаковка файлов игры...; Flags: shellexec runhidden waituntilterminated; Afterinstall: animateprogress
Filename: {src}\Sound_Bin_PC.exe; Parameters: -x -y -s2 -d.; WorkingDir: {app}\Game\Sound_Bin_PC\; StatusMsg: Идет распаковка файлов игры...; Flags: shellexec runhidden waituntilterminated; Afterinstall: animateprogress
Filename: {src}\DirectX\dxsetup.exe; Parameters: /silent; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop
Filename: {src}\Redistributables\vcredist_x86.exe; Parameters: /Q; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop
Filename: {src}\Redistributables\PhysX_SystemSoftware.exe; Parameters: /quiet; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop

[Registry]
Root: HKLM; SubKey: SOFTWARE\EA Games; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: DisplayName; ValueData: Mirror's Edge™; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: CD Drive; ValueData: {drive:...}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: ProductName; ValueData: Mirror's Edge™; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Folder; ValueData: {commonprograms}\{groupname}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Install Dir; ValueData: {app}\; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Installed From; ValueData: {drive:...}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Locale; ValueData: ru; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Language; ValueData: Russian; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Patch URL; ValueData: http://www.mirrorsedge.com/DLC; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Product GUID; ValueData: {{AEDBD563-24BB-4EE3-8366-A654DAC2D988}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Suppression Exe; ValueData: ; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Registration; ValueData: Software\Electronic Arts\EA Games\Mirror's Edge\ergc; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: ContentID; ValueData: mirrors_edge_eu; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Version; ValueData: 1.0.1.0; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: DisplayName; ValueData: Mirror's Edge; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: dword; ValueName: Language; ValueData: $00000010; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: LanguageName; ValueData: Russian; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: ProgramGroup; ValueData: {commonprograms}\{groupname}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core\Installed Games; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core\Installed Games\mirrors_edge_eu; ValueType: string; ValueName: lang; ValueData: ru; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Games\Mirror's Edge\ergc; ValueType: string; ValueName: ; ValueData: QXJSKREYVVPG6VVDJRLD; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\EA DICE; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\EA DICE\Mirror's Edge Patch\1.0.1.0; Flags: uninsdeletekey

[Messages]
WizardSelectDir=Выбор папки установки и дополнительных задач
SelectDirDesc=Выберите целевую директорию и дополнительные задачи, которые должны выполниться во время установки
SelectDirBrowseLabel=Нажмите «Установить», чтобы начать установку. Если Вы хотите выбрать другую папку, нажмите «Обзор».

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

[Code]
const
HALIGN_CENTER = 0;
HALIGN_LEFT = 1;
HALIGN_RIGHT = 2;

VALIGN_CENTER = 0;
VALIGN_TOP = 1;
VALIGN_BOTTOM = 2;

FIT_NONE = 0;
FIT_WIDTH = 1;
FIT_HEIGHT = 2;
FIT_BOTH = 3;

CLR_INVALID = $FFFFFFFF;

function InitGifCtrl(): Boolean; external 'initgifctrl@files:gifctrl.dll stdcall';
function UninitGifCtrl(): Boolean; external 'uninitgifctrl@files:gifctrl.dll stdcall';
function NewGifbWnd(hWndParent: HWND; X, Y, nWidth, nHeight: Integer): HWND; external 'newgifwnd@files:gifctrl.dll stdcall';
function FreeGifWnd(hWndGif: HWND): Boolean; external 'freegifwnd@files:gifctrl.dll stdcall';
function GifWndSetParent(hWndGif: HWND; hWndParent: HWND): Boolean; external 'gifwndsetparent@files:gifctrl.dll stdcall';
function GifWndSetBounds(hWndGif: HWND; X, Y, nWidth, nHeight: Integer): Boolean; external 'gifwndsetbounds@files:gifctrl.dll stdcall';
function GifWndLoadFromFile(hWndGif: HWND; HAlign, VAlign: Integer; BGColor: DWord; Fit: integer; GifFileName: PChar): Boolean; external 'gifwndloadfromfile@files:gifctrl.dll stdcall';

var
GIFHWND: HWND;
function InitializeSetup(): Boolean;
begin
InitGifCtrl();
GIFHWND := 0;
Result := True;
end;
procedure DeinitializeSetup();
begin
UninitGifCtrl();
end;

procedure LblOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://forum.ru-board.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
var
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;
DesktopIcon,Dop:TCheckBox;
ResultStr: string;
ResultCode: Integer;
NeedSize:Integer;
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel,FreeSpaceLabel: TLabel;

Function MakeDesktopIcon:Boolean;
begin
Result:=DesktopIcon.Checked;
end;

Function InstallDop:Boolean;
begin
Result:=Dop.Checked;
end;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ IntToStr(FreeMB)+ ' MB';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;

procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' GB' else
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ IntToStr(NeedSize)+ ' MB';
end;
var
ProgressBar1: TNewProgressBar;

procedure animateprogress;
begin ProgressBar1.Position := ProgressBar1.Position+1
end;
procedure InitializeWizard();
var
GifFileName: String;
Lbl: TNewStaticText;
begin
ExtractTemporaryFile('logo3.gif');

GIFHWND := NewGifbWnd(WizardForm.Handle, ScaleX(30), WizardForm.Bevel.Top + ScaleY(8), 126, 31);
GifWndLoadFromFile(GIFHWND, HALIGN_CENTER, VALIGN_CENTER, CLR_INVALID, FIT_NONE, ExpandConstant('{tmp}\logo3.gif'));
Lbl := TNewStaticText.Create(WizardForm);
Lbl.Parent := WizardForm;
Lbl.AutoSize := False;
Lbl.SetBounds(ScaleX(30), WizardForm.Bevel.Top + ScaleY(8), 126, 31);
Lbl.OnClick := @LblOnClick;
Lbl.Cursor := crHand;
begin
ProgressBar1 := TNewProgressBar.Create(wizardform);
with ProgressBar1 do
begin
Parent := wizardform.installingpage;
Left := wizardform.progressgauge.left;
Top := wizardform.progressgauge.top+wizardform.progressgauge.height+15;
Width := wizardform.progressgauge.width;
Height := wizardform.progressgauge.height;
Max := 100; //задается как кол-во файлов в [_run]
end;
end;
begin
WizardForm.Caption:='Программа установки игры "Mirrors Edge"';
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := 497;
WizardForm.WizardBitmapImage.Height := 313;
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
WizardForm.FileNameLabel.Visible:=False;
WizardForm.ProgressGauge.Top:=ScaleY(100);
WizardForm.StatusLabel.Top:=ScaleY(80);
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 11;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clBlack;

WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;
WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(76);
WLabel2.Left := ScaleX(176);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Font.Color:= clBlack;

WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := 497;
WizardForm.WizardBitmapImage2.Height := 313;
FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(176);
FLabel1.Top := ScaleY(16);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 11;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clBlack;

FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(76);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(53);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clBlack;

FLabel2.Caption := 'Программа установлена на Ваш компьютер.' #13#13
'Нажмите «Завершить», чтобы выйти из программы установки.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
begin
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(400);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
end;
begin
DesktopIcon:=TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent:=WizardForm.SelectDirPage;
Caption:='Добавить ярлык на рабочий стол'
Left:=ScaleX(0);
Top := WizardForm.DirEdit.Top+35;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True
end;
end;
begin
dop := TCheckBox.Create(WizardForm);
with Dop do
begin
Parent := WizardForm.SelectDirPage;
Caption := 'Установить дополнительные программы (рекомендуется)';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top+55;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True;
end;
end;
begin
NeedSize :=7300;
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(202);
Width := ScaleX(209);
Height := ScaleY(13);
end;
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
begin
if CurPageID=wpSelectDir then begin
WizardForm.NextButton.Caption:='Установить';
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;end;end;
[/more]
Автор: skeptik_vdm
Дата сообщения: 17.03.2009 18:03
WinstAn70
Там есть вот такая штука NeedSize :=7300<- тут вводишь необходимую цуфру
Автор: WinstAn70
Дата сообщения: 17.03.2009 18:38
skeptik_vdm
Ага ясно.
Нашел еще одну фиговину типа perecomp'a жмет хорошо!
Автор: skeptik_vdm
Дата сообщения: 17.03.2009 19:28
WinstAn70
Не знаю мне Инно больше всего нравиться и + в сочетнии с FreeArc это становиться улетно я допустим не давно Prince of Persia (RUS) сделал репак 3,30Гб вытянул даже меньше чем репак ЗлогоДеда хотя он мне помог очень сильно!!!

Добавлено:
WinstAn70
Не знаю мне Инно больше всего нравиться и + в сочетнии с FreeArc это становиться улетно я допустим не давно Prince of Persia (RUS) сделал репак 3,30Гб вытянул даже меньше чем репак ЗлогоДеда хотя он мне помог очень сильно!!!
Автор: Raf_SE
Дата сообщения: 17.03.2009 19:51
Ктонить подскажет, как добавить адрес сайта в инсталлятор, как тут?
Автор: skeptik_vdm
Дата сообщения: 17.03.2009 20:11
Raf_SE
Посмотри в шапке "Сборник вопросов" там эта тема очень хорошо описана!!!
Автор: Krec13
Дата сообщения: 17.03.2009 20:26
skeptik_vdm
Покажи, пожалуйста, скрипт на Принца Персии. Всё хочу посмотреть, как правильно сочетать FreeArc и Inno. Никак прогресс-бар не заставлю правильно отображать инфу.
Автор: msatmb
Дата сообщения: 17.03.2009 23:46

Цитата:
Вот тут исходники rep.exe + Лист параметров + Пример! Пользуйтесь!

попробовал. Что-то не пакуется ни чего Размер архива как был так и остался, только расширение rep Может нужны какие-то специфические ключи для упаковки? Я попробовал упаковать один архив из репака от cdmana, у него файл обработанный rep весит 900м, оригинал 2,2 гига. У меня получился 1,7 гига.... Правда я просто поставил быструю компрессию....Что-то я не допонимаю чего-то WinstAn70 может подскажешь?
Автор: DeKaNszn
Дата сообщения: 18.03.2009 00:36
msatmb
попробуй в команде запуска дописать: -a99
Автор: Artem_Butenko
Дата сообщения: 18.03.2009 00:59
Ребята, может кто-нибудь знает, как реализовать проигрывание фоновой музыки во время деинсталляции. Такая идея не нова и не пуста! Видел нечто подобное в демках игр от Ubisoft, реализованных на InstallShield. Только, как подобный эффект реализовать на Inno Setup я не знаю.
Автор: kombat 77
Дата сообщения: 18.03.2009 01:51
Artem_Butenko

Цитата:
не пуста!

Ради нескольких (3~5 секунд) деинсталляции?
Ну InstallShield понятно что он тормознутый, но быстрее Inno ничего ИМХО нет.

Автор: skeptik_vdm
Дата сообщения: 18.03.2009 07:04
msatmb
Там еще использовался precomp а потом уже rep но я так думаю толку от этого не будет!!!
И вообще зачем этот rep.exe от него толку нету????
Автор: DeKaNszn
Дата сообщения: 18.03.2009 09:10
skeptik_vdm
все зависит от типа данных
для текста и бинарных файлов некоторого типа - inno лучше сожмет при использовании
[no]SolidCompression=true
Compression=lzma/ultra64[/no]
Автор: skeptik_vdm
Дата сообщения: 18.03.2009 10:38
DeKaNszn
А бинарные файлы это какие файлы???
Автор: de_MAX
Дата сообщения: 18.03.2009 10:46

Цитата:
А бинарные файлы это какие файлы???

Это не картинки, не текст и не архивы - это файл, который не относится к определенному типу файлов, т.е. последовательность произвольных байтов.
Автор: maxdddca123
Дата сообщения: 18.03.2009 11:21
Здравствуйте. Мне необходимо скопировать файл во все вложенные папки. Как это можно сделать ?
Например у меня есть папка Users и в ней куча папок со списком юзеров (1 уровень). И мне надо что бы в папке каждого юзера появился копируемый файл.
Автор: Raf_SE
Дата сообщения: 18.03.2009 11:22
Сори за офтоп, но ктонить может подсказать консольную команду в FreeArc, для извлечения определенной папки, со всеми подпапками/файлами из архива?
Допустим у меня есть три папки "rus", "eng", "ger", что нужно ввести чтобы извлечь все содержимое папки "eng"?
Автор: Felan
Дата сообщения: 18.03.2009 13:29
Вот проблема есть... никак не получается решить.

Есть Inno Setup 5.1.13 с препроцессором.
Есть скрипт, который создает сетап.

После компиляции, с файлом сетапа надо сделать определенные действия, которые выполняет консольная утилита.

Вопрос, как после компиляции запустить эту утилиту, что бы она изменила созданный файл сетапа?


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

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

Т.е. например такой батник

***
"C:\Program Files\Inno Setup 5\compil32.exe" /cc "File_Zone1.iss"
"C:\Program Files\Inno Setup 5\compil32.exe" /cc "File_Zone2.iss"
***

Создает два файла вида Setup_File_Zone{x}_{vX.Y.Z}.exe

Как-нибудь в скрипты можно вставить команды, что бы потом эти файлы (после компиляции) передавались на обработку внешней программе?
Автор: nOobCrafter
Дата сообщения: 18.03.2009 15:55
DeKaNszn
День добрый, я все со старым http://forum.ru-board.com/topic.cgi?forum=5&topic=29117&start=680#9
Почему то ругается на:
Внутренняя ошибка: An attempt was made to call the "CurrentFileName" function from outside a "Check", "BeforeInstall" or "AfterInstall" event function belonging to a "[Files]" entry.

Код: // по ходу твой код.
function InitializeSetup():boolean;
begin
updating:=false;
Result:=true;
end;

function checking():boolean;
begin
If not updating
Then Result:=true
Else
Case ExtractFileName(CurrentFileName) of
'232.dll','485.dll','bdt52cf.dll','jpeg32.dll','proclink.dll','asod.exe','browser.exe','builder.exe','vidsvr.exe', '232.dll','485.dll','jpeg32.dll','vidcap.dll','IniSetAccess.exe','photocap.exe','SArepair.exe','SetAccess.exe','SetAccess_conv282.exe','twaincap.exe','twp_help.exe':
Result:=true;
else Result:=false;
end;
end;
// ничего больше лишнего нет, табличку из function checking() убрал (етсь она или нету, разницы никакой)
procedure CurStepChanged(CurStep: TSetupStep);
begin
if DirExists('C:\123') then begin
if CurStep = ssInstall then begin

if WizardForm.TasksList.Checked[4] = True then //если чекбокс отмечен тогда выполняем бекап
begin
updating := true;
end;
Автор: DeKaNszn
Дата сообщения: 18.03.2009 16:45
nOobCrafter

замени функцию checking [more=этой][no]function checking():boolean;
begin
If not updating
Then Result:=true
Else
Case ExtractFileName(CurrentFileName) of
'232.dll','485.dll','bdt52cf.dll','jpeg32.dll','proclink.dll','asod.exe','browser.exe','builder.exe','vidsvr.exe', '232.dll','485.dll','jpeg32.dll','vidcap.dll','IniSetAccess.exe','photocap.exe','SArepair.exe','SetAccess.exe','SetAccess_conv282.exe','twaincap.exe','twp_help.exe': Result:=true
else Result:=false;
end;
end;[/no][/more]

check: checking используй только в секции [Files]
Автор: nOobCrafter
Дата сообщения: 18.03.2009 17:39
DeKaNszn
спс щас попробую, веришь или нет, но check: checking и так у меня используется только в том месте, да и вообще CurrentFileName больше нигде не упоминается..удивлен(
З.Ы. попробовал - ничего..
пробовал писать и так и так:

Код: Source: C:\bde\*; DestDir: {app}\BDE; Flags: ignoreversion recursesubdirs createallsubdirs; Components: d; Check: checking
---------------
Source: C:\bde\*; DestDir: {app}\BDE; Flags: ignoreversion recursesubdirs createallsubdirs; Components: d; Check: checking() // разница в том что добавил \ убрал скобки
Автор: DeKaNszn
Дата сообщения: 18.03.2009 18:09
nOobCrafter
скинь скрипт полностью(можешь в лс, если не хочешь всем показывать)
Автор: nOobCrafter
Дата сообщения: 18.03.2009 18:19
отправил в лс, там больше 500 строк кода если весь Нужное пометил коментами

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.