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

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

Автор: zero 414
Дата сообщения: 02.06.2011 13:43

Цитата:
народ, подскажите что сделать, чтобы при отмене установки игры не начинал ставиться софт
Автор: Vo1T
Дата сообщения: 02.06.2011 13:43
Я тебе помогал со всем и с ISLogo и с ISExec ... жаль что понял какая ты гнида так поздно и не внёс в чёрный список раньше
Автор: Dark_Delphin
Дата сообщения: 02.06.2011 18:40

Цитата:
ISDone.dll v 0.4.2.5


Библиотека, включающая в себя все необходимое для распаковки и подготовки файлов с помощью прекомпрессоров посредством инсталлятора InnoSetup, с равномерным отображением всех идущих операций на одном прогрессбаре. Поддерживаются arc, 7zip, rar, pcf, srep архивы. На будущее планируется добавить некоторые необходимые функции, lossy/lossless распаковку wav/dds/bmp/tga в файлы и файловые архивы, а так же возможность параллелизации операций на многоядерных системах.

ИЗМЕНЕНИЯ В МОДУЛЯХ:
ISArc
обновлен unarc.dll до версии 0,67a;
в соответствии с предыдущим пунктом стало возможным выводить более подробный отчет о возникшей проблеме в случае возникновения ошибки при распаковке .arc архивов.


Скрипт с примером и файл readme.txt с кратким описанием библиотеки прилагается.


Ссылки:

http://rghost.ru/2261077
http://rapidshare.com/files/410810738/ISDone0.4.2.5.7z


А как в этом скрипте можно растянуть картинки на весь инсталлятор?


Автор: Vasario85
Дата сообщения: 02.06.2011 20:20
ShegoratПриветствую!!!
Помоги!
Использовал твой BASS v 1.1 с уменьшением и повышением громкости в скрипте от Юршата,вроде все нормально,только вот звук не регулируется.
В чем может быть проблема?
Автор: Shegorat
Дата сообщения: 02.06.2011 20:38
Vasario85 21:20 02-06-2011
Цитата:
Использовал твой  BASS v 1.1 с уменьшением и повышением громкости в скрипте от Юршата,вроде все нормально,только вот звук не регулируется.

Попробуй более новую версию модуля BASS v.1.2-pre.rar
Автор: xanloz
Дата сообщения: 02.06.2011 22:06
А как ставить 3D чтоб без очков работало? и там мышка на инсталле влево - он чуть поворачивается влево, вправо - вправо?
Автор: Despofix
Дата сообщения: 02.06.2011 22:43
можно ли с помощью isdone не распаковывать, а упаковывать, например в 7z?
Автор: SotM
Дата сообщения: 02.06.2011 22:52
А как сделать чтобы у меня холодильник еще и видео показывал?
Автор: Vasario85
Дата сообщения: 02.06.2011 23:16
Shegorat


Цитата:
Попробуй более новую версию модуля BASS v.1.2-pre.rar

Спасибо!!!Все работает)))
Автор: xanloz
Дата сообщения: 02.06.2011 23:59
насчёт 3D я не шутил я такой инсталл видел, смотрел - это инно сетап!
http://rghost.ru/9154541 - если хотите проверьте.
Автор: troyan90
Дата сообщения: 03.06.2011 00:06
xanloz
библиотека не в свободном доступе. либо сам пиши(длл), либо надейся на то что автор ее выложит
Автор: xanloz
Дата сообщения: 03.06.2011 00:09
troyan90
Куда там выложат. Жлобы они все, а жаль... очень красиво выходит.
Автор: FunnyRabbit
Дата сообщения: 03.06.2011 06:51
xanloz
Для этого нужна специальная библиотека ,сделанная для закрытого круга людей))
Despofix
Можно ,смотрим примеры к исдану
SotM
Думаю можно и это устроить ,правда нужен достаточно дорогой холодильник
Автор: aidarsimon
Дата сообщения: 03.06.2011 07:35

Цитата:
Два вопроса.  
1. Как задать условие, например, что если выбран определенный компонент, то на этапе дополнительных задач (wpSelectTasks) появлялось поле с гиперссылкой на сайт.
2. Как изменить размер таблицы (поля) с компонентами?


Второй вопрос снят


Код: WizardForm.ComponentsList.Top:=10
WizardForm.ComponentsList.Left:=60
WizardForm.ComponentsList.Width:=300
WizardForm.ComponentsList.Height:=150
Автор: DeKaNszn
Дата сообщения: 03.06.2011 07:46
aidarsimon

Цитата:
function IsComponentSelected(const Components: String): Boolean;


хелп надо читать
Автор: Gnom3
Дата сообщения: 03.06.2011 09:15
xanloz
Думаю, что в свободном доступе ее не будет, к томуже есть у нее глюки - На семерке если при работе инсталла нажать волшебное сочетание контрл+альт+делет - получается прикольно.
Автор: aidarsimon
Дата сообщения: 03.06.2011 09:16
DeKaNszn
Условие сделал, а как передать значение в раздел [tasks] ?
Автор: Gnom3
Дата сообщения: 03.06.2011 09:20
aidarsimon
Есть функция- function IsTaskSelected(const Tasks: String): Boolean; условие получается таким:

Код: if IsTaskSelected('имя задачи') then begin //Если задача выбрана
Чтото делаем
end;
Автор: DeKaNszn
Дата сообщения: 03.06.2011 09:43
aidarsimon
самый простой способ - снова открыть хелп для секции Tasks

Цитата:
Components
A space separated list of components this task belongs to. If the end user selects a component from this list, this task will be shown. A task entry without a Components parameter is always shown.
Автор: Gnom3
Дата сообщения: 03.06.2011 10:06
aidarsimon Извиняюсь, не сразу въехал в условия задачи Вот для твоего случая:

Код: procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of wpSelectTasks: //Если страница задач
if IsComponentSelected('имя задачи') then begin //Если был выбран компонент
// Чтото делаем
end;
end;
end;
Автор: aidarsimon
Дата сообщения: 03.06.2011 10:28
DeKaNszn
Gnom3
спасибо, понял. а вот как открыть файл url, чтоб был переход на сайт или сам сайт открыть?
Автор: shidow
Дата сообщения: 03.06.2011 10:29
Как скрыть WizardForm.OuterNotebook и WizardForm.InnerNotebook?
Автор: troyan90
Дата сообщения: 03.06.2011 10:35
shidow
WizardForm.OuterNotebook.hide;
WizardForm.InnerNotebook.hide;
Автор: THE GUILTY GOD
Дата сообщения: 03.06.2011 12:32
xanloz
Да, прикольный инстал!!
То что Surface.dll отвечает за 3Д я понял, а кто знает как с ней работать!1????
Автор: Dark_Delphin
Дата сообщения: 03.06.2011 13:07
Как в этом скрипте растянуть картинку в инсталляторе?

[more=Скрипт]#define NeedSize "10000000000"




#define precomp038


[Setup]
AppName=ISDone
AppVerName=ISDone
DefaultDirName={pf}\ISDone
OutputDir=.
OutputBaseFilename=Setup
SolidCompression=yes
#ifdef NeedSize
ExtraDiskSpaceRequired={#NeedSize}
#endif



[Files]
Source: ISDone.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: records.inf; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef precomp038
Source: Include\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\RTconsole.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
#endif


[CustomMessages]
russian.ExtractedFile=Распаковывается файл:
russian.CancelButton=Отменить распаковку
russian.Error=Ошибка распаковки!

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

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

[Code]
var
LabelPct,LabelCurrFileName: TLabel;
ISDoneProgressBar: TNewProgressBar;
MyCancelButton: TButton;
OveralPct,Cancel:integer;
CallBack:longword;
MyError:boolean;

type
TCallback = function (Pct: integer;CurrentFile:string): longword;
TMessage = record hWnd: HWND; msg, wParam: Word; lParam: LongWord; Time: TFileTime; pt: TPoint; end;

function PeekMessage(var lpMsg: TMessage; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall';
function TranslateMessage(const lpMsg: TMessage): BOOL; external 'TranslateMessage@user32.dll stdcall';
function DispatchMessage(const lpMsg: TMessage): Longint; external 'DispatchMessageA@user32.dll stdcall';

function WrapMyCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:innocallback.dll stdcall';

function ISArcExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; callback: longword; Password, CfgFile, WorkPath: AnsiString):BOOL; external 'ISArcExtract@files:ISDone.dll stdcall';
function IS7ZipExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; callback: longword; Password: AnsiString):BOOL; external 'IS7zipExtract@files:ISDone.dll stdcall';

function ISPrecompExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean; callback: longword):BOOL; external 'ISPrecompExtract@files:ISDone.dll stdcall';
function ISSRepExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutFile, IdxFile: AnsiString; DeleteInFile:boolean; callback: longword):BOOL; external 'ISSrepExtract@files:ISDone.dll stdcall';
function ShowChangeDiskWindow(Text, DefaultPath, SearchFile:AnsiString):BOOL; external 'ShowChangeDiskWindow@files:ISDone.dll stdcall';
function StartRecord(RecordFileName:AnsiString; AllComponents:longword):BOOL; external 'StartRecord@files:ISDone.dll stdcall';
function CheckPoint(CurComponent:Integer):BOOL; external 'CheckPoint@files:ISDone.dll stdcall';
function StopRecord:BOOL; external 'StopRecord@files:ISDone.dll stdcall';

function ProgressCallback(Pct: integer; CurrentFile:AnsiString): longword;
var Msg: TMessage;
begin
if Pct<=ISDoneProgressBar.Max then
ISDoneProgressBar.Position := Pct;
LabelPct.Caption := IntToStr(Pct div 10)+'.'+chr(48 + Pct mod 10)+'%';
LabelCurrFileName.Caption :=ExpandConstant('{cm:ExtractedFile} ')+CurrentFile;
while PeekMessage(Msg, 0, 0, 0, 1) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Result := Cancel;
end;

procedure CancelButtonOnClick(Sender: TObject);
begin
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:=1;
end;

procedure InitializeWizard();
begin
ISDoneProgressBar := TNewProgressBar.Create(WizardForm);
with ISDoneProgressBar do begin
Left := ScaleX(0);
Top := ScaleY(40);
Width := ScaleX(417);
Max := 1000;
Height := WizardForm.ProgressGauge.Height;
Parent := WizardForm.InstallingPage;
end;
LabelPct := TLabel.Create(WizardForm);
with LabelPct do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := WizardForm.ProgressGauge.Width;
Top := WizardForm.ProgressGauge.Top + ScaleY(40);
Alignment := taCenter;
Caption := '';
end;
LabelCurrFileName := TLabel.Create(WizardForm);
with LabelCurrFileName do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := WizardForm.ProgressGauge.Width;
Left := ScaleX(0);
Top := WizardForm.ProgressGauge.Top + ScaleY(25);
Caption := '';
end;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpFinished) and MyError then
begin
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Font.Color:= clRed;
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted) ;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var ChComp, TmpValue:longword;
n:integer;
begin
if CurStep = ssInstall then begin
WizardForm.ProgressGauge.Hide;
WizardForm.CancelButton.Visible:=false;
MyCancelButton:=TButton.Create(WizardForm);
with MyCancelButton do begin
Parent:=WizardForm;
Width:=ScaleX(135);
Caption:=ExpandConstant('{cm:CancelButton}');
Left:=ScaleX(360);
Top:=WizardForm.cancelbutton.top;
OnClick:=@CancelButtonOnClick;
end;
CallBack:=WrapMyCallback(@ProgressCallback,2);
Cancel:=0;
OveralPct:=0;


#ifdef records
ExtractTemporaryFile('records.inf');
#endif

#ifdef precomp038
ExtractTemporaryFile('packjpg_dll.dll');
ExtractTemporaryFile('RTconsole.exe');
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('zlib1.dll');
#endif




StartRecord(ExpandConstant('{src}\records.inf'),ChComp);
repeat
MyError:=true;

if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\CODMW2.arc'), ExpandConstant('{app}\data1'), false,CallBack, '', '', '') then break;
if not ISSRepExtract ( 0, OveralPct, 0, ExpandConstant('{app}\data1\CODMW2.srep'), ExpandConstant('{app}\data1\CODMW2.pcf'), '', true, CallBack ) then break;
if not ISPrecompExtract( 0, OveralPct, 0, ExpandConstant('{app}\data1\CODMW2.pcf'), ExpandConstant('{app}\data1\CODMW2.7z'), true, CallBack ) then break;
if not IS7ZipExtract ( 0, OveralPct, 0, ExpandConstant('{app}\data1\CODMW2.7z'), ExpandConstant('{app}\data1'), true, CallBack, '' ) then break;

MyError:=false;
until true;
StopRecord;

MyCancelButton.Visible:=false;
WizardForm.CancelButton.Visible:=true;
end;
if (CurStep=ssPostInstall) and MyError then
Exec(ExpandConstant('{uninstallexe}'), '/SILENT','', sw_Hide, ewWaitUntilTerminated, n);
end;[/more]
Автор: Snoopak96
Дата сообщения: 03.06.2011 13:21
Dark_Delphin,
В шапке есть пример, да и тут уже 1000 раз было.
Автор: xanloz
Дата сообщения: 03.06.2011 13:25
THE GUILTY GOD
Самый простой способ - взломать весь инсталл с compilecode.bin и переделывать под своё.
И как вы узнали что Surface.dll отвечает за 3D?
Автор: Dark_Delphin
Дата сообщения: 03.06.2011 13:27
Snoopak96
как-то совсем не так там.
Автор: Snoopak96
Дата сообщения: 03.06.2011 13:37
Dark_Delphin,
Ну как не так http://victor-dobrov.narod.ru/InnoSetupFAQ_ru-board.chm
Автор: Dark_Delphin
Дата сообщения: 03.06.2011 13:42
Snoopak96
Вот в той скрпт который я дал, сможешь вставить?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


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