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

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

Автор: SotM
Дата сообщения: 06.07.2011 22:27
alex0413
А зачем нужно директ икс упаковывать вообще?!? В этом есть какой-то глубокий смысл?
Автор: Kasoi
Дата сообщения: 06.07.2011 23:08
alex0413

есть флаг postinstall
Автор: alex0413
Дата сообщения: 07.07.2011 10:40
SotM
Есть, просто так получилось что если не сжать то на диск не влезит. Может както через code, подскажите документацию по этому розделу.

Добавлено:
Kasoi
Это я пробовал, но это както не по людски выходит, там должен быть флаг чтобы запустить игру...
Автор: Yasuni
Дата сообщения: 07.07.2011 11:16
alex0413
вот так можно
[more]
[Components]
Name: first; Description: Обновить vcRedist 2005; Flags: checkablealone; Types: full
Name: second; Description: Обновить vcRedist 2008; Flags: checkablealone; Types: full
Name: fird; Description: Обновить DirectX (нужно интернет соединение); Flags: checkablealone; Types: full

[Run]
Filename: {app}\vcredist_x86_2005.exe; WorkingDir: {app}\; Parameters: /q; StatusMsg: Завершение распаковки, ждите...; Components: first
Filename: {app}\vcredist_x86_2008.exe; WorkingDir: {app}\; Parameters: /q; StatusMsg: Завершение распаковки, ждите...; Components: second
Filename: {app}\dxwebsetup.exe; WorkingDir: {app}\; StatusMsg: Завершение распаковки, ждите...; Components: fird

[Files]
Source: C:\Redist\vcredist_x86_2005.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;
Source: C:\Redist\vcredist_x86_2008.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;
Source: C:\Redist\dxwebsetup.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;[/more]
уже под себя переделай компоненты
можно и через [Tasks] вписать, это тебе для примера, делай как хочешь
Автор: Kasoi
Дата сообщения: 07.07.2011 11:37
ENERGES

Это надо руками переделывать шрифты на эти 3 страницы. я думаю что врятле это кому-то хочется.
Автор: Gnom3
Дата сообщения: 07.07.2011 12:05
Kasoi это не шрифты, это дубли лейбелов со смещением на пиксель. Ему лень просто делать, вот и ищет энтузиаста. Самое смешное, сколько уже требует - давно мог сам все сделать.
Автор: Krinkels
Дата сообщения: 07.07.2011 12:27
ENERGES
20 евро. Заявку оставляй на форуме(адрес в моей подписи), и в максимально быстрое время тебе все сделают
Автор: Shegorat
Дата сообщения: 07.07.2011 12:38
Krinkels 13:27 07-07-2011
Цитата:
20 евро. Заявку оставляй на форуме(адрес в моей подписи), и в максимально быстрое время тебе все сделают

У нас пока такого раздела нет

alex0413 11:40 07-07-2011
Цитата:
Есть, просто так получилось что если не сжать то на диск не влезит. Может както через code, подскажите документацию по этому розделу.

Можно и через код. Для этого есть функция

Код: function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;
Автор: SotM
Дата сообщения: 07.07.2011 14:47
alex0413
Я бы откровенно говоря, не размещал бы на диске директикс, но это моё мнение.

Например, меня вот совсем уж бесит когда с интернета скачиваешь какую либо игру, а в ней понапихано DirectX, vcredist, etc. Получается я попусту скачиваю не нужные мне файлы.
Автор: Neronk_2K
Дата сообщения: 07.07.2011 17:32
Народ помогите плз...

Мне нужно прикрепить к этому скрипту http://rghost.ru/13795001 другуй распаковку...

Я хотел бы вместо IsDona прикрепить распаковку как у R.G. Catalyst
Вот пример http://rghost.ru/13796241


Парни буду бесконечно благодарен если кто поможет Спасиб за внимание!
Автор: alex0413
Дата сообщения: 07.07.2011 17:40
SotM
ну с одной стороны ты прав, но бывает и такое,что нужен директик а его какрас нету. Я думаю что самы оптимальный вариант это кинуть веб установку, только вопрос, где ее взять...

Добавлено:
SotM
, все, спасибо за помощ, веб установку я нашел.
Автор: SotM
Дата сообщения: 07.07.2011 18:36
alex0413
Только не забудь сделать установку DirectX опциональной!
Автор: THE GUILTY GOD
Дата сообщения: 07.07.2011 19:17
Всем привет!!
Народ проверте эти коды, а то мне инстолятор в них ошибки выдает (коды из помощи от Krinkels)
[more]в этом коде мне пишут что есть Duplicate identifer

Код: type
TTimerProc = procedure(HandleW, Msg, idEvent, TimeSys: LongWord);
var
TimerID: LongWord;
PercentsLabel: TLabel;

function WrapTimerProc(callback: TTimerProc; Paramcount: Integer): longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): longword; external 'SetTimer@user32';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32 stdcall delayload';

Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.1n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;

procedure PercentsInstall();
begin
with WizardForm.ProgressGauge do
begin
PercentsLabel.Caption:= 'Выполнено' + NumToStr((Position-Min)/((Max - Min)/100)) + ' %';
end;
end;

Procedure MyTimerProc(h, msg, idevent, dwTime: Longword);
Begin
if WizardForm.CurPageID = wpInstalling then PercentsInstall();
End;

procedure DeinitializeSetup();
begin
KillTimer(0, TimerID);
end;

procedure InitializeWizard();
begin
PercentsLabel:= TLabel.Create(WizardForm);
with PercentsLabel do
begin
Left:= WizardForm.DirEdit.Left;
Top:= WizardForm.DirEdit.Top + WizardForm.DirEdit.Height + ScaleY(40);
Width:= WizardForm.StatusLabel.Width;
Height:= WizardForm.StatusLabel.Height;
AutoSize:= False;
Transparent := True;
Font.Style:= [fsBold, fsItalic];
Font.Size:= 13;
Font.Name:= 'Constantia' ;
Font.Color:= ClBlack;
Parent:= WizardForm.InstallingPage;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
TimerID:= SetTimer(0, 0, 500 {Полсекунды}, WrapTimerProc(@MyTimerProc, 4));
end;
end;
Автор: Gnom3
Дата сообщения: 07.07.2011 19:53
THE GUILTY GOD
Во втором замени этот блок:

Код: procedure GetTime(HandleW, Msg, idEvent, TimeSys: LongWord);
var Remaining: Integer;
begin
with WizardForm.ProgressGauge do begin
if position > 0 then Remaining:= trunc((GetTickCount - StartInstall) * Abs((max - position)/position));
TimeLabel.Caption:= 'Inoaeinu ' + TicksToTime(Remaining, cm('hour'), cm('min'), cm('sec'), false);
if (Remaining = 0) then TimeLabel.Caption:= 'Завершение...';
end;
end;
Автор: alex0413
Дата сообщения: 07.07.2011 20:27
SotM
ну канечно)))


Добавлено:
У кого есть Inno Setup Corona Skin & Check System Requirements.7z? Выложите пожалуйста на rghost.ru, а то ссылка не робочая, а с зеркала скачать не получается.
Автор: SotM
Дата сообщения: 07.07.2011 20:54
alex0413
Добавил в шапке еще одно зеркало для Corona Skin.
Автор: alex0413
Дата сообщения: 07.07.2011 22:33
SotM
спасибо
Автор: baqzar1
Дата сообщения: 08.07.2011 14:47
Здравствуйте. При установке игры у меня такой инсталл http://s59.radikal.ru/i164/1107/79/416cc9777cf2.jpg а при деинсталляции такой http://s61.radikal.ru/i171/1107/a9/d00b9f590eb6.jpg??? и как убрать музыку в инсталле и картинку чтобы не мешала? Помогите пожалуйста.
Автор: Sergey_Demchuk
Дата сообщения: 08.07.2011 15:45
Просветите плиз
Есть код для выбора компонентов, ранее тут не раз выкладывался.
Во он
[more]
[CustomMessages]
RUS.ComponentsInfoPanel1=Описание
RUS.ComponentsInfoPanel2=Наведите курсор мыши на компонент, чтобы прочитать его описание.
RUS.ComponentsDescription1=Устанавливается обязательно
RUS.ComponentsDescription2=1
RUS.ComponentsDescription3=1
RUS.ComponentsDescription4=1
RUS.ComponentsDescription5=1
RUS.ComponentsDescription6=1
RUS.ComponentsDescription7=1
RUS.ComponentsDescription8=1
RUS.ComponentsDescription9=1
RUS.ComponentsDescription10=1
RUS.ComponentsDescription11=1
RUS.ComponentsDescription12=1
RUS.ComponentsDescription13=1
RUS.ComponentsDescription14=1
RUS.ComponentsDescription15=1
RUS.ComponentsDescription16=1
RUS.ComponentsDescription17=1
RUS.ComponentsDescription18=1
RUS.ComponentsDescription19=1
RUS.ComponentsDescription20=1
RUS.ComponentsDescription21=1

[Files]
Source: "compiler:dll pack\descctrl.dll"; Flags: dontcopy solidbreak noencryption

[Messages]
ComponentsDiskSpaceMBLabel=

[Code]
var
Check: array [0..12] of TCheckBox;

function enabledesc(ComponentsListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';
function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';

var
Info: TNewStaticText;
InfoCaption: TNewStaticText;
InfoPanel: TPanel;

procedure DeinitializeSetup2();
begin
disabledesc();
end;

procedure ClickCheck(Sender: TObject);
begin
if TNewCheckListBox(Sender).ItemIndex = 5 then
WizardForm.ComponentsList.Checked[10]:=false;
if TNewCheckListBox(Sender).ItemIndex = 10 then
WizardForm.ComponentsList.Checked[5]:=false;
end;

//procedure OnClickCheck(Sender: TObject);
//begin
//Case Sender of
//WizardForm.ComponentsList.Checked[6]:
//if WizardForm.ComponentsList.Checked[5]=true then WizardForm.ComponentsList.Checked[10]:=false;
//WizardForm.ComponentsList.Checked[11]:
//if WizardForm.ComponentsList.Checked[11]=true then WizardForm.ComponentsList.Checked[6]:=false;
//end;
//MsgBox('1', mbInformation, MB_OK);
//end;

procedure InitializeWizard3();
begin
WizardForm.TYPESCOMBO.Visible:= false;
WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height + WizardForm.ComponentsList.Top - WizardForm.TYPESCOMBO.Top;;
WizardForm.ComponentsList.Top := WizardForm.TYPESCOMBO.Top+20;
WizardForm.ComponentsList.Width := ScaleX(200);

InfoPanel := TPanel.Create(WizardForm);
InfoPanel.Parent := WizardForm.SelectComponentsPage;
InfoPanel.Caption := '';
InfoPanel.Top := WizardForm.ComponentsList.Top;
InfoPanel.Left := WizardForm.ComponentsList.Top + ScaleX(156);
InfoPanel.Width := ScaleX(200);
InfoPanel.Height := WizardForm.ComponentsList.Height;
InfoPanel.BevelInner := bvRaised;
InfoPanel.BevelOuter := bvLowered;
InfoCaption := TNewStaticText.Create(WizardForm);
InfoCaption.Parent := WizardForm.SelectComponentsPage;
InfoCaption.Caption := 'Информация:';
InfoCaption.Left := WizardForm.ComponentsList.Top + ScaleX(224);
InfoCaption.Top := InfoPanel.Top - ScaleY(5);
InfoCaption.Font.Color := clActiveCaption;
Info := TNewStaticText.Create(WizardForm);
Info.Parent := InfoPanel;
Info.AutoSize := False;
Info.Left := ScaleX(6);
Info.Width := ScaleX(188);
Info.Top := ScaleY(12);
Info.Height := WizardForm.ComponentsList.Height - ScaleY(18);
Info.WordWrap := true;
Info.Caption := ExpandConstant('{cm:ComponentsInfoPanel2}');
Info.WordWrap := true;

enabledesc(WizardForm.ComponentsList.Handle,Info.Handle,
ExpandConstant('{cm:ComponentsDescription1};')+
ExpandConstant('{cm:ComponentsDescription2};')+
ExpandConstant('{cm:ComponentsDescription3};')+
ExpandConstant('{cm:ComponentsDescription4};')+
ExpandConstant('{cm:ComponentsDescription5};')+
ExpandConstant('{cm:ComponentsDescription6};')+
ExpandConstant('{cm:ComponentsDescription7};')+
ExpandConstant('{cm:ComponentsDescription8};')+
ExpandConstant('{cm:ComponentsDescription9};')+
ExpandConstant('{cm:ComponentsDescription10};')+
ExpandConstant('{cm:ComponentsDescription11};')+
ExpandConstant('{cm:ComponentsDescription12};')+
ExpandConstant('{cm:ComponentsDescription13};')+
ExpandConstant('{cm:ComponentsDescription14};')+
ExpandConstant('{cm:ComponentsDescription15};')+
ExpandConstant('{cm:ComponentsDescription16};')+
ExpandConstant('{cm:ComponentsDescription17};')+
ExpandConstant('{cm:ComponentsDescription18};')+
ExpandConstant('{cm:ComponentsDescription19};')+
ExpandConstant('{cm:ComponentsDescription20};')+
ExpandConstant('{cm:ComponentsDescription21};')
);

WizardForm.ComponentsList.OnClickCheck:=@ClickCheck;

end;
[/more]

Но как только добавляю во т эти строки
procedure InitializeWizard();
begin
with WizardForm do begin
ClientWidth:=796; ClientHeight:=620;
position:=poScreenCenter;
end;

То Информационная панель перестает реагировать на компонент, на который навели мышку. Может кто глянуть в чем дело?
Автор: demon1232010
Дата сообщения: 08.07.2011 17:04
Sergey_Demchuk 16:45 08-07-2011
Цитата:
Просветите плиз


Есть предположение что либа просто перехватывает расположение курсора в окне и если они равны Top параметру то меняет заголовок статика/лейбла. А так как по видимому вы меняете размеры окна то координаты не верны и замена заголовка статика/лейбла не происходит.
Вывод: Надо менять размеры окна до вызова ф-ии EnableDesc.
Автор: moonlight82
Дата сообщения: 09.07.2011 00:30
Протестируйте инсталл. http://rghost.ru/13956551 Все отзывы в лс.
Автор: alex0413
Дата сообщения: 09.07.2011 12:15
подскажите, как в ISFreeArcExtract v4.0 от Shegorat'а убрать второй прогрессбар если один архив? И еще, зачем нужен FaTexture, и как им пользоваться?
Автор: MrLOLs
Дата сообщения: 09.07.2011 16:29
Помогите вставить функцию определения Windows 7 или Windows Vista в скрипт

Собственно код:

function CheckWindowsSeven: Integer;
var osVerInfo: TOSVersionInfo;
Begin
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
    begin
with osVerInfo do
        begin
            if (dwMajorVersion = 6) and (dwMinorVersion = 1) and (dwBuildNumber >= 7600)
            then Result := 1
            else Result := 0;
        end;
    end
else Result := -1
end;

Результаты:
- 1: Не удалось определить версию Windows
0: Windows Vista или ниже
1: Windows 7 или Windows Server 2008 R2

При прямой вставке функции возвращает ошибку "Unknown type 'TOSVersionInfo'"
Мне нужно чтобы функция CheckWindowsSeven имела какой то результат (-1, 0, 1).

Полная идея: Не дать пользователю установить программу в папку Program Files, если он использует ОС Win7 или Vista
Автор: Pacifist
Дата сообщения: 09.07.2011 17:46


Цитата:
подскажите, как в ISFreeArcExtract v4.0 от Shegorat'а убрать второй прогрессбар если один архив? И еще, зачем нужен FaTexture, и как им пользоваться?

Присоединяюсь.
А также подскажите плз как добавить ярлык в "обозреватель игр" (доступно в Viste\Win 7)?
Автор: shidow
Дата сообщения: 09.07.2011 18:17

Цитата:
А также подскажите плз как добавить ярлык в "обозреватель игр" (доступно в Viste\Win 7)?


а в шапку посмотреть? Скрипт для добавления ярлыков в Game Explorer

Автор: moonlight82
Дата сообщения: 09.07.2011 19:13
Спасибо всем кто отписался, вторая версия: http://rghost.ru/14017401
Интересует правильность прорисовки лейблов DirectX и Microsoft Visual C++ в зависимости от выбранных чекбоксов в компонентлисте на главной и финишной странице на русском и английском вариантах инсталлятора.

Добавлено:
Перезалил, http://rghost.ru/14018961
Автор: alex0413
Дата сообщения: 09.07.2011 21:23
moonlight82
все работает отлично.
Автор: moonlight82
Дата сообщения: 09.07.2011 22:02
alex0413
Нет не отлично, нашел еще пару багов. В скором времени залью в этот пост третью версию.

Добавлено:
Проверяйте http://rghost.ru/14035741
Автор: alex0413
Дата сообщения: 10.07.2011 01:23
moonlight82
странно, я ниче не нашел... ща эту версию потестим.

Добавлено:
в этой версии вродебы все нормально. И еще, должно быть красивее есль текст поднять выше, ато пустое место сверху в глаза бросается.
Автор: moonlight82
Дата сообщения: 10.07.2011 02:34
Нашел косяк с путем установки на финишной странице.
Вот, вариант 4. На тест. http://rghost.ru/14055951 Все отзывы в лс.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

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


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