Jump to content
Korean Random

Создание инсталляторов для модпаков на базе Inno Setup


Recommended Posts

Где тут смайлик с рогами?

могу предоставить скрины и скрипт

Ребята а не подскажите как сделать так как на скрине

 

thhj67cl.jpg

ссылку клик и музыку

Link to comment
Short link
Share on other sites

могу предоставить скрины и скрипт

Ребята а не подскажите как сделать так как на скрине

 

thhj67cl.jpg

ссылку клик и музыку

ссылка

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
;{ ISFormDesignerFilesBegin } // Не удалять эту строку!
;// Не изменять эту секцию. Она создана автоматически.
DestName: "WizardForm.BitmapImage1.bmp"; Source: "compiler:WizModernImage-IS.bmp"; Flags: dontcopy solidbreak
;// Не изменять эту секцию. Она создана автоматически.
;{ ISFormDesignerFilesEnd } // Не удалять эту строку!

[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030100302000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038F010D506978656C73506572496E636802600A54657874486569676874020D00F202010C544269746D6170496D6167650C4269746D6170496D61676531044C656674020803546F70034701055769647468023106486569676874021706437572736F72070B637248616E64506F696E740A4269746D617046696C65061E636F6D70696C65723A57697A4D6F6465726E496D6167652D49532E626D70074F6E436C69636B070A78766D4F6E436C69636B0000F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000000A544E6577427574746F6E0A4E6577427574746F6E31044C656674024803546F70034701055769647468024B06486569676874021906437572736F72070B637248616E64506F696E740743617074696F6E060358564D085461624F726465720205074F6E436C69636B070A78766D4F6E436C69636B000000

[code]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  BitmapImage1: TBitmapImage;
  NewButton1: TNewButton;

procedure xvmOnClick(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
  { BitmapImage1 }
  BitmapImage1 := TBitmapImage.Create(WizardForm);
  with BitmapImage1 do
  begin
    Name := 'BitmapImage1';
    Parent := WizardForm;
    Left := ScaleX(8);
    Top := ScaleY(327);
    Width := ScaleX(49);
    Height := ScaleY(23);
    Cursor := crHand;
    ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
    OnClick := @xvmOnClick;
  end;

  { NewButton1 }
  NewButton1 := TNewButton.Create(WizardForm);
  with NewButton1 do
  begin
    Name := 'NewButton1';
    Parent := WizardForm;
    Left := ScaleX(72);
    Top := ScaleY(327);
    Width := ScaleX(75);
    Height := ScaleY(25);
    Cursor := crHand;
    Caption := 'XVM';
    OnClick := @xvmOnClick;
  end;

  NewButton1.TabOrder := 5;

{ ReservationBegin }
  // Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

procedure xvmOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://www.modxvm.com/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end; 

музыка

BASS Модуль - 1.3.rar

Link to comment
Short link
Share on other sites

ссылка

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
;{ ISFormDesignerFilesBegin } // Не удалять эту строку!
;// Не изменять эту секцию. Она создана автоматически.
DestName: "WizardForm.BitmapImage1.bmp"; Source: "compiler:WizModernImage-IS.bmp"; Flags: dontcopy solidbreak
;// Не изменять эту секцию. Она создана автоматически.
;{ ISFormDesignerFilesEnd } // Не удалять эту строку!

[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030100302000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038F010D506978656C73506572496E636802600A54657874486569676874020D00F202010C544269746D6170496D6167650C4269746D6170496D61676531044C656674020803546F70034701055769647468023106486569676874021706437572736F72070B637248616E64506F696E740A4269746D617046696C65061E636F6D70696C65723A57697A4D6F6465726E496D6167652D49532E626D70074F6E436C69636B070A78766D4F6E436C69636B0000F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000000A544E6577427574746F6E0A4E6577427574746F6E31044C656674024803546F70034701055769647468024B06486569676874021906437572736F72070B637248616E64506F696E740743617074696F6E060358564D085461624F726465720205074F6E436C69636B070A78766D4F6E436C69636B000000

[code]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  BitmapImage1: TBitmapImage;
  NewButton1: TNewButton;

procedure xvmOnClick(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
  { BitmapImage1 }
  BitmapImage1 := TBitmapImage.Create(WizardForm);
  with BitmapImage1 do
  begin
    Name := 'BitmapImage1';
    Parent := WizardForm;
    Left := ScaleX(8);
    Top := ScaleY(327);
    Width := ScaleX(49);
    Height := ScaleY(23);
    Cursor := crHand;
    ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
    OnClick := @xvmOnClick;
  end;

  { NewButton1 }
  NewButton1 := TNewButton.Create(WizardForm);
  with NewButton1 do
  begin
    Name := 'NewButton1';
    Parent := WizardForm;
    Left := ScaleX(72);
    Top := ScaleY(327);
    Width := ScaleX(75);
    Height := ScaleY(25);
    Cursor := crHand;
    Caption := 'XVM';
    OnClick := @xvmOnClick;
  end;

  NewButton1.TabOrder := 5;

{ ReservationBegin }
  // Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

procedure xvmOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://www.modxvm.com/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end; 

музыка

attachicon.gifBASS Модуль - 1.3.rar

Попробую спасибо

не получается а что куда вставлять

 

Попробую спасибо

Не получается а что куда надо вставить

Попробую спасибо

не получается а что куда вставлять

 

Не получается а что куда надо вставить

В архиве там несколько вариантов я так понимаю , у меня уже свой скрипт самого инсталятора есть, вспойлере вы мне кинули скрипт, из него чтото надо ко мне вставлять? что именно ?

Link to comment
Short link
Share on other sites

 

В архиве там несколько вариантов я так понимаю , у меня уже свой скрипт самого инсталятора есть, вспойлере вы мне кинули скрипт, из него чтото надо ко мне вставлять? что именно ?

я показал пример, дальше сами

или скиньте свой код в архиве

Link to comment
Short link
Share on other sites

я показал пример, дальше сами

или скиньте свой код в архиве

Вличку кинул

Может проще купить скрипт? а есть кто продает , за спрос ведь не бьют :)

Link to comment
Short link
Share on other sites

@licimer, либо расширять всё окно, либо суживать компонент-лист. Либо всё сделать по новой, без всяких форм Notebook`ов, на чистом визарде.

Мысль понял... Спасибо!

Link to comment
Short link
Share on other sites

Почему не ищет архив в таком виде для распаковки?

Exec(ExpandConstant('{app}\{#AppName}\download\7za.exe'), 'x -y ...\res\packages\gui.pkg -o...\res_mods', '', SW_Show, ewWaitUntilTerminated, ResultCode);

а в таком норм 

Exec(ExpandConstant('{app}\{#AppName}\7za.exe'), 'x -y ..\res\packages\gui.pkg -o..\res_mods', '', SW_Show, ewWaitUntilTerminated, ResultCode);
Link to comment
Short link
Share on other sites

Exec(ExpandConstant('{app}\{#AppName}\download\7za.exe'), 'x -y ..\..\res\packages\gui.pkg -o..\..\res_mods', '', SW_Show, ewWaitUntilTerminated, ResultCode);

спасиб, ок

а почему в таком виде нужно было делать?

Link to comment
Short link
Share on other sites

 

 

а почему в таком виде нужно было делать?
Потому что "..\" - означает перейти на директорию ниже. И так как ты распаковщик поднял на одну выше, нужно и один переход добавить.. А ты просто две точки заменил тремя)
Link to comment
Short link
Share on other sites

Потому что "..\" - означает перейти на директорию ниже. И так как ты распаковщик поднял на одну выше, нужно и один переход добавить.. А ты просто две точки заменил тремя)

теперь понял 

Link to comment
Short link
Share on other sites

Всем привет! Подскажите пожалуйста как сделать чтобы unist падал в отдельную папку в корне игры? И второй вопрос, как сделать чтобы лог установки сохранялся там же? Заранее спасибо!

Link to comment
Short link
Share on other sites

Всем привет! Подскажите пожалуйста как сделать чтобы unist падал в отдельную папку в корне игры? И второй вопрос, как сделать чтобы лог установки сохранялся там же? Заранее спасибо!

[Setup]
UninstallFilesDir={app}\.....
#define LogMods              "Лог установки.log"
[Code]
function CreateLogMods: Boolean;
var
  I: Integer;
  FileName, DateTime: String;
begin
  Result:=True;
  DateTime:=GetDateTimeString('dd/mm/yyyy  hh:nn', '-', '-');
  FileName:=ExpandConstant('{app}\....}\{#LogMods}');
//----------------------------------------------------------------------------------------------\\
  SaveStringToFile(FileName, '"..............."' + #13#10 + #13#10 +  'Дата установки: ' + DateTime + #13#10 + #13#10 + 'Путь установки: ' +  WizardForm.DirEdit.Text +  #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10 + 'Прицелы:' + #13#10, True);
    For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do
         If WizardForm.ComponentsList.Checked[I] then
    begin
         SaveStringToFile(FileName, '... ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True);
      end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
   If CurStep=ssInstall then
begin
  CreateDir(ExpandConstant('{app}\....'));
  DeleteFile(ExpandConstant('{app}\...\{#LogMods}'));
  CreateLogMods;
end;
end;
  • Upvote 1
Link to comment
Short link
Share on other sites

[Setup]
UninstallFilesDir={app}\.....
#define LogMods              "Лог установки.log"
[Code]
function CreateLogMods: Boolean;
var
  I: Integer;
  FileName, DateTime: String;
begin
  Result:=True;
  DateTime:=GetDateTimeString('dd/mm/yyyy  hh:nn', '-', '-');
  FileName:=ExpandConstant('{app}\....}\{#LogMods}');
//----------------------------------------------------------------------------------------------\\
  SaveStringToFile(FileName, '"..............."' + #13#10 + #13#10 +  'Дата установки: ' + DateTime + #13#10 + #13#10 + 'Путь установки: ' +  WizardForm.DirEdit.Text +  #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10 + 'Прицелы:' + #13#10, True);
    For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do
         If WizardForm.ComponentsList.Checked[I] then
    begin
         SaveStringToFile(FileName, '... ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True);
      end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
   If CurStep=ssInstall then
begin
  CreateDir(ExpandConstant('{app}\....'));
  DeleteFile(ExpandConstant('{app}\...\{#LogMods}'));
  CreateLogMods;
end;
end;

Спасибо... Вопрос

Можно небольшие пояснения по этой строчке:

 

UninstallFilesDir={app}\.....

 

И по этой:

 

SaveStringToFile(FileName, '"..............."' + #13#10 + #13#10 +  'Дата установки: ' + DateTime + #13#10 + #13#10 + 'Путь установки: ' +  WizardForm.DirEdit.Text +  #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10 + 'Прицелы:' + #13#10, True);

 

Заранее спасибо!

Link to comment
Short link
Share on other sites

Можно небольшие пояснения по этой строчке:

 

UninstallFilesDir={app}\.....

Это образно. Вместо многоточия - название папки, которая будет создаваться автоматически и содержать в себе файлы деинсталляции.

 

И по этой:

SaveStringToFile(FileName, '"..............."' + #13#10 + #13#10 + 'Дата установки: ' + DateTime + #13#10 + #13#10 + 'Путь установки: ' + WizardForm.DirEdit.Text + #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10 + 'Прицелы:' + #13#10, True);

Эту строку можете спокойно удалять. Лог выбранных модов создаётся этим:

for I := 0 to WizardForm.ComponentsList.Items.Count - 1 do
 if WizardForm.ComponentsList.Checked[i] then
  SaveStringToFile(FileName, WizardForm.ComponentsList.ItemCaption[I] + #13#10, True);
Edited by Kotyarko_O
  • Upvote 1
Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...