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

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

Автор: r1977
Дата сообщения: 03.08.2010 18:25
Gr0z
Сделал вот так и получилось

Код: if not ISArcExtract ( 0, OveralPct, 0, ExpandConstant('{src}\Data.arc'), ExpandConstant('{app}'), false,CallBack, '', '', '') then break;
Автор: Gr0z
Дата сообщения: 03.08.2010 19:02
[more=Что за символ?] [/more]
И что означает параметр "q" ?

Код: Filename: {src}\Redist\VisualC++\vcredist_x86.exe; WorkingDir: {src}\Redist\VisualC++\; Parameters: /q; Flags: waituntilterminated; Check: visualc and not IsWin64 and not InstallRedist; BeforeInstall: visualcProgress;
Автор: Tobikkk
Дата сообщения: 03.08.2010 19:08
SotM
Разобрался, тыркнул свойства, а потом разблокировать. Всё пошло =)
Автор: Night_Archangel
Дата сообщения: 03.08.2010 19:08

Цитата:
Night_Archangel, скорее всего, очень похоже на Inno Shield.


Действительно)))) Благодарствую))))))))
Автор: Profrager
Дата сообщения: 03.08.2010 19:22
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


На счет проблем/вопросов с библиотекой отписываться тут. На счет скрипта - в текущей ветке
Автор: r1977
Дата сообщения: 03.08.2010 21:58
На рабочий стол выкидывает ярлык калькулятора но игра запускается, как его поменять на ярлык игры
Автор: Provizor54
Дата сообщения: 03.08.2010 23:16
Помогите с реестаровскими файлыми в Prince Of Persia Forgetten Sands как зделать в скрипти чтобы в 32 битной и 64 битной определял сам.
скинте с нужнами файлами реестара
Автор: Shwepps
Дата сообщения: 04.08.2010 00:06
ребята, подскажите пожалуйста как создать кнопку ВКЛ/ВЫКЛ музыку. Для проигрывания музыки использую этот код:
[more]

Код: [Files]
Source: "D:\music.wav"; Flags: dontcopy

[Code]
function sndPlaySound(lpszSoundName: string; uFlags: cardinal):integer;
external 'sndPlaySoundA@winmm.dll stdcall';

procedure InitializeWizard();
begin
sndPlaySound(ExpandConstant('{src}\music.wav'), $0001 or $0008); //Проигрываем файл. Здесь указаны параметры для повторного проигрывания. Если мы хотим проиграть файл единожды, удаляем параметр 'or $0008'
end;
Автор: teveksler
Дата сообщения: 04.08.2010 10:51
Здравствуйте.
Прошу помощи.

Profrager, как в Вашем скрипте исправить прогресс бары? Не совсем я понял, а то получаеться что при первом этапе (допустим распаковки FreeArxc) прогрессбар доходит до конца, а проценты не сбрасываються и на втором этапе (допустим распакова SREP) продолжлают идти до 200%.

Надеюсь я более менее ясно описал свою проблему, надеюсь , что Вы мне поможете.
Автор: zxcvvcxz1
Дата сообщения: 04.08.2010 12:59
Здравствуйте. У меня такой вопрос по текстурированию кнопок нарыл несколько остоновился на одном :Скрипт текстурирования кнопок, с четырмя видами состояния кнопок
Используется текстура размером 320х23, где размер одной кнопки 80х23
Текстуру сделал под кнопки при комплияции ошибка Прошу не пинать - в этом новичёк Пожалуста подправте :
[more];Скрипт текстурирования кнопок, с четырмя видами состояния кнопок
;Используется текстура размером 320х23, где размер одной кнопки 80х23

[Setup]
AppName=Test
AppVerName=Test
DefaultDirName={pf}\Test

[Name]
Name: "rus"; Name: "compiler:Name\Russian.isl";

[Files]
Source: button2.bmp; DestDir: {tmp}; Flags: dontcopy
[Code]
const
ButtonWidth = 80;
ButtonHeight = 23;

var
WizardLabel: TLabel;
ButtonPanel: array of TPanel;
ButtonImage: array of TBitmapImage;
ButtonLabel: array of TLabel;
Used Buttons: array of TB utton; // Здесь ошибка
B uttonsCount: Integer;

procedure ButtonLabelClick(Sender: TObject );
var Button: TButton; n, i: Integer;
begin
i:= TLabel( Sender).Tag; ButtonImage[i].Left:= 0
for n:=0 to ( ButtonsCount-1) do begin
if i = n then Button:= UsedButtons[n];
end;
Button.OnClick(Button)
end;

procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Enabled then ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth*2
end;

procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Enabled then ButtonImage[TLabel(Sender).Tag].Left:=0
end;

procedure ButtonLabelMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var n, I: Integer;
begin
I:=TLabel(Sender). Tag;
for n:=0 to (B uttonsCount-1) do begin if ( ButtonLabel[n].Enabled)and(ButtonImage[n].Left <> -ButtonWidth*2)and(I<>N) then ButtonImage[n].Left:= 0; end;
if ( ButtonLabel[I].Enabled)and(ButtonImage[I].Left <> - ButtonWidth*2) then begin ButtonImage[I].Left:= -ButtonWidth; end;
end;

procedure WizardLabelMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var n: Integer;
begin
for n:=0 to (B uttonsCount-1) do if ( ButtonLabel[n].Enabled)and(ButtonImage[n].Left <> -ButtonWidth*2) then begin B uttonImage[n].Left:= 0; end;
end;

procedure LoadButtonImage(AButton: TButton);
var n: Integer;
begin
n :=ButtonsCount; SetArrayLength(ButtonPanel, n+1);
SetArrayLength(ButtonImage, n+1); SetArrayLength(ButtonLabel, n+1);
SetArrayLength(UsedButtons, n+1); UsedButtons[n]:= AButton;

ButtonPanel[n]:=TPanel.Create(WizardForm)
ButtonPanel[n].SetBounds(AButton.Left, AButton.Top, AButton.Width, AButton.Height)
ButtonPanel[n].Tag:= n
ButtonPanel[n].Enabled:= AButton.Enabled
ButtonPanel[n].Parent:=AButton.Parent

ButtonImage[n]:=TBitmapImage.Create(WizardForm)
ButtonImage[n].SetBounds(ScaleX(0), ScaleY(0), ScaleX(320), ScaleY(23))
ButtonImage[n].Enabled:=False
ButtonImage[n].Bitmap.LoadFromFile(ExpandConstant('{tmp}\Button2.bmp'))
ButtonImage[n].Parent:=ButtonPanel[n]

with TLabel.Create(WizardForm) do begin
Tag:=n
Parent:=ButtonPanel[n]
Width:=AButton.Width
Height:=AButton.Height
Transparent:=True
OnClick:=@ButtonLabelClick
OnDblClick:=@ButtonLabelClick
OnMouseMove:=@ButtonLabelMove
OnMouseDown:=@ButtonLabelMouseDown
OnMouseUp:=@ButtonLabelMouseUp
end

ButtonLabel[n]:=TLabel.Create(WizardForm)
ButtonLabel[n].Autosize:=True
ButtonLabel[n].Alignment:=taCenter
ButtonLabel[n].Tag:=n
ButtonLabel[n].Enabled:= AButton.Enabled
ButtonLabel[n].Transparent:=True
ButtonLabel[n].Font.Color:=clWhite
ButtonLabel[n].Caption:=AButton.Caption
ButtonLabel[n].OnClick:=@ButtonLabelClick
ButtonLabel[n].OnDblClick:=@ButtonLabelClick
ButtonLabel[n].OnMouseMove:=@ButtonLabelMove
ButtonLabel[n].OnMouseDown:=@ButtonLabelMouseDown
ButtonLabel[n].OnMouseUp:=@ButtonLabelMouseUp
ButtonLabel[n].Parent:=ButtonPanel[n]

ButtonsCount:= ButtonsCount+1
end;

procedure UpdateB uttons();
var n: Integer;
begin
for n:=0 to Bu ttonsCount-1 do begin
ButtonLabel[n].Caption:=UsedButtons[n].Caption
ButtonPanel[n].Visible:=UsedButtons[n].Visible
if (UsedB uttons[n].Enabled = False) then But tonImage[n].Left:= -Bu ttonWidth*3 else B uttonImage[n].Left:= 0;
ButtonLabel[n].Enabled:= UsedButtons[n].Enabled;
ButtonPanel[n].Enabled:= UsedButtons[n].Enabled ;
ButtonLabel[n].Left:= ButtonPanel[n].Width div 2 - ButtonLabel[n].Width div 2;
ButtonLabel[n].Top:= ButtonPanel[n].Height div 2 - ButtonLabel[n].Height div 2;
end;
end;

procedure LicenceAcceptedRadioOnClick (Sender: TObject );
begin
WizardForm.NextButton.Enabled:= True;
UpdateButtons();
end;

procedure LicenceNotAcceptedRadioOnClick( Sender: TObject );
begin
WizardForm.NextButton.Enabled:= False;
UpdateButtons()
end;

procedure InitializeWizard();
begin
WizardLabel:= TLabel.Create(WizardForm)
WizardLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(WizardForm.Width), ScaleY(WizardForm.Height))
WizardLabel.Transparent:= True;
WizardLabel.AutoSize:=false;
WizardLabel.OnMouseMove:=@WizardLabelMove
WizardLabel.Parent:= WizardForm;

WizardForm.BackButton.Width:= ButtonWidth
WizardForm.BackButton.Height:= ButtonHeight

WizardForm.NextButton.Width:= ButtonWidth
WizardForm.NextButton.Height:= ButtonHeight

WizardForm.CancelButton.Width:=ButtonWidth
WizardForm.CancelButton.Height:= ButtonHeight

WizardForm.DirBrowseButton.Left:=ScaleX(337)
WizardForm.DirBrowseButton.Width:= ButtonWidth
WizardForm.DirBrowseButton.Height:=ButtonHeight

WizardForm.GroupBrowseButton.Left:=ScaleX(337)
WizardForm.GroupBrowseButton.Width:= ButtonWidth
WizardForm.GroupBrowseButton.Height:=ButtonHeight

WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick

WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick

ExtractTemporaryFile('button2.bmp')
LoadButtonImage(WizardForm.BackButton)
LoadButtonImage(WizardForm.NextButton)
LoadButtonImage(WizardForm.CancelButton)
LoadButtonImage(WizardForm.DirBrowseButton)
LoadButtonImage(WizardForm.GroupBrowseButton)
end;

procedure CurPageChanged(CurPageID: Integer);
begin
UpdateButtons()
end;

[/more]



Скрипт+Текстура [more]http://rghost.ru/2266003[/more]
Автор: ChanVS
Дата сообщения: 04.08.2010 13:16
Всем привет!
Такой вопрос :
Возможен ли скрипт Call of Duty WW FreeArc+IsPrecomp отвязать от FreeArc-a?

Фаил files.ini , я так понимаю, создается при распаковка FreeArc-ом.
Просто переписывая files.ini для перекомпресии, IsPrecomp не берет пути от туда!


Вот часть скрипта

procedure PrecompCallback(progress: integer);
begin
ProgressBar.Position := progress;
StatusInfo.Caption := 'Обработано: ' + IntToStr(ProgressBar.Position) + '%';
AppProcessMessage;
end;

Procedure CheckPrecompFiles(Filename: String);
var
GetFile: String;
begin
If ExtractFileExt(Filename) = '.pcf' then //Находим файлы
begin
if (Pos(AnsiLowercase(ExpandConstant('{app}')), AnsiLowercase(Filename)) > 0) then
GetFile:= Filename else //Если имеется полный путь, оставляем так
GetFile:= AddBackslash(DestDir) + Filename; //Если путь неполный, то добавляем необходимые строчки
SetIniString('Files', IntToStr(PrecompFiles), GetFile, ExpandConstant('{app}\Files.ini')) //Сохраняем название файла в файл
PrecompFiles:= PrecompFiles + 1 //Общее количество найденных файлов
end;
if Filename = '' then Exit;
end;

Procedure ISPrecompCmd();
var
StrN: Integer;
InFile, OutDir: String;
callback: Longword;
Begin
ProgressBar.Position:= 0; ProgressBar.Max:= 100
WizardForm.ProgressGauge.Position:=0;
WizardForm.ProgressGauge.Max:=PrecompFiles;
StatusLabel.Caption:= 'Преобразование файлов. Пожалуйста подождите';
Status.stage:= StatusLabel.Caption; ExtractFile.Hide;
for StrN:= 0 to (PrecompFiles-1) do //Получаем количество файлов
begin
InFile:=GetIniString('Files',IntToStr(StrN), '', ExpandConstant('{app}\Files.ini')); //Получаем название файла
FilenameLabel.Caption:= InFile
OutDir:= ExtractFilePath(InFile)
ProgressBar.Position:= 0; Callback:= WrapPrecompCallback(@PrecompCallback,1);
PrecompExtract(InFile, OutDir, callback);
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position + 1;
DeleteFile(InFile); //Удаляем файл
end;
AppProcessMessage;
End;
Автор: vint56
Дата сообщения: 04.08.2010 13:43
zxcvvcxz1 http://rghost.ru/2266343
ChanVS http://rghost.ru/2266634
Автор: Profrager
Дата сообщения: 04.08.2010 13:57
teveksler

Цитата:
Profrager, как в Вашем скрипте исправить прогресс бары? Не совсем я понял, а то получаеться что при первом этапе (допустим распаковки FreeArxc) прогрессбар доходит до конца, а проценты не сбрасываються и на втором этапе (допустим распакова SREP) продолжлают идти до 200%.

В файле readme.txt же написано, что проценты при первом проходе будут зашкаливать. Создастся файл records.inf, его и надо прикреплять к инсталлеру, убрав комментарий в начале скрипта от строки #define records. После этого прогрессбар будет корректно и более или менее равномерно отображаться
Автор: r1977
Дата сообщения: 04.08.2010 15:16
На рабочем столе после установки игры не появляется ярлык, помогите
Автор: ChanVS
Дата сообщения: 04.08.2010 15:35
r1977
Name: {userdesktop}\GAMES; Filename: "{app}\GAMES.exe"; WorkingDir: {app}; Check: CreateIcons

Такая строчка есть?

Добавлено:
vint56

Спасибо ты лудший!
precomp версии осталось узнать!
0.38 или 4. Не могу найти у себя на ХДД.
Автор: zxcvvcxz1
Дата сообщения: 04.08.2010 16:03
Спасибо ошибка исчезла Появилась другая
В строке ButtonLabel[n]:=TLabel.Create(WizardForm)
vint56- Будь добр посмотри ещё раз пожалуста Буду благодарен

Твой исрпавленный скрипт+Текстура кнопок (чтобы не искать) http://rghost.ru/2267405


Автор: vint56
Дата сообщения: 04.08.2010 16:05
ChanVS спасибо не мне надо говорить а Shegorat-у он автор этого скрипта
вот precomp 2 версий 0.38 и 0.40 http://rghost.ru/2267422


Добавлено:
zxcvvcxz1 вот все работает даже пример http://rghost.ru/2267476
Автор: htuos
Дата сообщения: 04.08.2010 16:15
StarCraft2 v2
http://ifolder.ru/18770714
основное изменение от предыдущей версии - видео вместо тормозного (а тормозил он прилично) wmv-кодека использует xvid-кодек в контейнере avi, для этого в начале установки проверяется наличие данного кодека в системе, если его нет, то он устанавливается. по окнчании работы инсталла кодек удаляется, если был поставлен нашим инсталлятором.
соответственно уменьшен размер инсталлятора, почти в 2 раза
уменьшен "разлет" форм при перемещении
еще что-то по мелочи
Автор: Raf_SE
Дата сообщения: 04.08.2010 16:28
htuos
Вот это уже приемлемая скорость запуска. Хотя лично я, не парился бы с установкой кодека, а просто положил все WMV видео, в папочку рядом с инсталом (а не в сам инстал). В конце концов, сами разрабы часто так делают, и ничё.

А касательно "разлетов", так я вижу наоборот, предыдущая версия скрипта намного мягче и быстрее перемещалась, а эта жоще и тормознутее.
Автор: zxcvvcxz1
Дата сообщения: 04.08.2010 16:33
Ответ для: --vint56--
Блин, не пойму у меня ошибка и всё тут в этом месте ButtonLabel[n]:=TLabel.Create(WizardForm)

Автор: htuos
Дата сообщения: 04.08.2010 16:38
Raf_SE

Цитата:
Вот это уже приемлемая скорость запуска. Хотя лично я, не парился бы с установкой кодека, а просто положил все WMV видео, в папочку рядом с инсталом (а не в сам инстал). В конце концов, сами разрабы часто так делают, и ничё.

где лежит видео влияет только на скорость запуска инсталла. включать/не включать его в инсталл дело каждого, к тому же звук всит раза в 2 больше , чем видео . зато использование wmv-кодека раз в 20 (если не больше) замедляло установку файлов. по крайней мере на винхп так было, тогда как авишки закоженые xvid'ом не томозят установку. по крайней мере визуально скорость установки файлов что с видео, что без него кажется одинаковой

Цитата:
А касательно "разлетов", так я вижу наоборот, предыдущая версия скрипта намного мягче и быстрее перемещалась, а эта жоще и тормознутее.
в вин7, да формы стали перемещаться жестче, но они не разъединяются. в винхп на предыдущей версии формы при перемещении "разъезжались" очень сильно, теперь этого не видно, но формы тоже перемещаются как бы с небольшими рывками.
единственно машины, на которых я тестил, имеют достаточно мощные процессоры, поэтому у меня может быть не как у других. слабую тачку пока взять негде
Автор: vint56
Дата сообщения: 04.08.2010 16:47
zxcvvcxz1 вот этим я компилирую скачай http://files.jrsoftware.org/ispack/ispack-5.3.10.exe
Автор: r1977
Дата сообщения: 04.08.2010 17:06
ChanVS

На рабочий стол выкидывает ярлык калькулятора но игра запускается, как его поменять на ярлык игры
Автор: zxcvvcxz1
Дата сообщения: 04.08.2010 17:12
Ответ для --vint56--
Слушай помагло , А почему так,странно у меня тоже 5.3.10 только с русиком ну и ещё только,что меняю WizardImageFile=WizardImage.bmp и WizardSmallImageFile=WizardImage.bmp там где устоновлен сам InnoSetup Поправь если не так если он встаёт колом в месте где ButtonLabel[n]:=TLabel.Create(WizardForm)
я так понемаю он не может "Подхватить" Эти изображения
Автор: vint56
Дата сообщения: 04.08.2010 17:26
zxcvvcxz1 эти картинки должны лежать возле скрипта
WizardImageFile=WizardImage.bmp
WizardSmallImageFile=WizardSmallImage.bmp


Добавлено:
r1977 что за игра
Автор: r1977
Дата сообщения: 04.08.2010 17:27
vint56
Sniper Ghost Warrior
Автор: zxcvvcxz1
Дата сообщения: 04.08.2010 17:32
--vint56--
Всё понял,спасибо Благодарю
Автор: vint56
Дата сообщения: 04.08.2010 17:37
r1977
[Icons]
Name: {group}\Играть Sniper Ghost Warrior; Filename: {app}\Sniper_x86.exe; WorkingDir: {app}
Name: {group}\Удалить Sniper Ghost Warrior; Filename: {uninstallexe}; WorkingDir: {app}
Name: {userdesktop}\Sniper Ghost Warrior; Filename: {app}\Sniper_x86.exe; WorkingDir: {app}
Автор: demon75
Дата сообщения: 04.08.2010 18:34
помогите пожалуйста как вставить картинку на весь инсталлятор
Автор: Shwepps
Дата сообщения: 04.08.2010 20:43
А кто-то может подсказать что-то насчет этого?

Цитата:
ребята, подскажите пожалуйста как создать кнопку ВКЛ/ВЫКЛ музыку. Для проигрывания музыки использую этот код:

Код:
[Files]
Source: "D:\music.wav"; Flags: dontcopy

[Code]
function sndPlaySound(lpszSoundName: string; uFlags: cardinal):integer;
external 'sndPlaySoundA@winmm.dll stdcall';

procedure InitializeWizard();
begin
sndPlaySound(ExpandConstant('{src}\music.wav'), $0001 or $0008); //Проигрываем файл. Здесь указаны параметры для повторного проигрывания. Если мы хотим проиграть файл единожды, удаляем параметр 'or $0008'
end;

Страницы: 1234567891011121314151617181920212223

Предыдущая тема: Skype (Часть 3)


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