Jump to content
Korean Random
EvilAlex

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

Recommended Posts

 

 

Бро! Ну как так-то? Мы же просто хотим знать, какие моды пользуются наибольшей популярностью, чтобы развивать и улучшать их =(

:heh:  

  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Ты установщики распаковываешь или что? Для использования на юникоде тут скидывали файл

Share this post


Link to post

Short link
Share on other sites

Что здесь творится?

Не могу реализовать бекапирование  пробую и в юникоде версии и в анси все равно пустые папки, если только файл кидаю в 0,9,13 то он бекапируется, а все что во вложенных папках в 0,9,13 и хвм не копируется помогите плиз.

Ты установщики распаковываешь или что? Для использования на юникоде тут скидывали файл

я только на  8 странице и причем здесь распаковка.... ты обещал в личке и так и не дал ответ, а я твердолобый должен так же понять все

Edited by Nowik1971

Share this post


Link to post

Short link
Share on other sites

Спасибо все теперь работает! копирует и бекапит, но мне все же интересно а как сделать чтобы бекап упаковывался и архив был с датой и временем создания в названии  архивабекапа

Share this post


Link to post

Short link
Share on other sites

 

 

но мне все же интересно а как сделать чтобы бекап упаковывался и архив был с датой и временем создания в названии архивабекапа
Используйте консольную версию 7z (7za).

Share this post


Link to post

Short link
Share on other sites

Я не знаю как прикрутить архиватор, а во вторых вот такая проблемка: как это реализовать подскажите ткните носом, должен быть архив в папке с датой и временем

Edited by Nowik1971

Share this post


Link to post

Short link
Share on other sites

Как совместить эти два скрипта

//---------------------------------------
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';

//**************************************************//
function InitializeSetup(): Boolean;
begin
  If RunTask('WorldOfTanks.exe', false) then
    begin
      if MsgBox('Игра WorldOfTanks запущена. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
        begin
          KillTask('WorldOfTanks.exe');
          Result:= True;
        end else
          Exit;
    end;
Result:=True;
end;
//-----------------------------------
function InitializeSetup(): Boolean;
var
  ResultCode: Integer;
begin
  Result:=CompareStr(GetDateTimeString('yyyymmdd', #0,#0), '{#ExpiryDate}') <= 0;
If not Result then
  begin
    If MsgBox('Внимание!' #13#13 'С момента создания данной версии прошло больше 2-х недель.' #10#10 'Желаете проверить наличие обновлений?', mbError, MB_YESNO)=IDYES then
    begin
      ShellExec('', '{#DownloadUrl}', '' , '', SW_SHOW, ewNoWait, ResultCode);
      Exit;
    end
    else
      Result:=True;
  end;
end; 

Share this post


Link to post

Short link
Share on other sites

Как совместить эти два скрипта

вроде так

//---------------------------------------
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';

//**************************************************//
function InitializeSetupKillTask: Boolean;
begin
  If RunTask('WorldOfTanks.exe', false) then
    begin
      if MsgBox('Игра WorldOfTanks запущена. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
        begin
          KillTask('WorldOfTanks.exe');
          Result:= True;
        end else
          Exit;
    end;
Result:=True;
end;
//-----------------------------------
function InitializeSetupDateTime: Boolean;
var
  ResultCode: Integer;
begin
  Result:=CompareStr(GetDateTimeString('yyyymmdd', #0,#0), '{#ExpiryDate}') <= 0;
If not Result then
  begin
    If MsgBox('Внимание!' #13#13 'С момента создания данной версии прошло больше 2-х недель.' #10#10 'Желаете проверить наличие обновлений?', mbError, MB_YESNO)=IDYES then
    begin
      ShellExec('', '{#DownloadUrl}', '' , '', SW_SHOW, ewNoWait, ResultCode);
      Exit;
    end
    else
      Result:=True;
  end;
end;

function InitializeSetup: Boolean;
begin
InitializeSetupKillTask;
InitializeSetupDateTime;
end;

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Спасибо! первая часть кода работает, а вторая нет, ... скрипт копилируется, но во время установки он неубивает процесс игры танков, а танки его убивают вахаха, сам пишу сам ржу как  это так и пишет: в строке отладки [17:28:06,752]   *** Установка started

[17:28:07,179]   Setup version: Inno Setup version 5.5.1.ee2 (u)
[17:28:07,180]   Original Setup EXE: C:\Users\Andrey_nowik\Desktop\Сборки мои читов\****iPackFull.exe
[17:28:07,182]   Setup command line: /SL5="$5B033A,9585001,158720,C:\Users\------wik\Desktop\Сборки мои читов\------MultiPackFull.exe" /DEBUGWND=$100246
[17:28:07,183]   Windows version: 6.2.9200  (NT platform: Yes)
[17:28:07,183]   64-bit Windows: Yes
[17:28:07,184]   Processor architecture: x64
[17:28:07,184]   User privileges: Administrative
[17:28:07,208]   64-bit install mode: No
[17:28:07,597]   Created temporary directory: C:\Users\ANDREY~1\AppData\Local\Temp\is-1BTP7.tmp
[17:28:07,616]   InitializeSetup returned False; aborting.
[17:28:07,617]   Got EAbort exception.
[17:28:07,617]   Deinitializing Setup.
[17:28:07,710]   *** Установка exit code: 1

Что не так делаю?


 

 

Запомните: картинки, свистелки и перделки в инсталляторе далеко не главное. Главное - его функционал, что он может сделать в процессе установки. В плане дизайна нужно придерживаться минимализма и не перегружать интерфейс ненужными вещами. Для себя давным давно выбрал именно это, дизайн - всё просто, доступно и со вкусом, функционал - начиная от бэкапа, заканчивая редактированием на лету по средствам инсталлятора конфигов XVM и модов, автоматическим сохранением/восстановлением токена доступа к статистике XVM и т.д.

[quote name='AtotIK' timestamp='1396941126' post='167390']

[*************Code]
function CreateLog(): Boolean;
var
  I: Integer;
  FileName, DateTime: String;
begin
  Result:=True;
  DateTime:=GetDateTimeString('dd/mm/yyyy hh:nn:ss', '-', '-');
  FileName:=ExpandConstant('{app}\Install Log (' + DateTime + ').log');
  SaveStringToFile(FileName, '"Modpack от AtotIK для v0.9.0 - Update 68" - Install Log - ' + DateTime + #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
      CreateLog();
end;
end; 


Нажимаю нет и установка не продолжается пробовал менять труе на фальсе все равно

Edited by Nowik1971

Share this post


Link to post

Short link
Share on other sites
Как совместить эти два скрипта

'Вот так.'

Function InitializeSetup(): Boolean;
var
 ResultCode: Integer;
begin
 ExtractTemporaryFile('ISTask.dll');
 Result := True;
 if RunTask('WorldOfTanks.exe', False) then
  if MsgBox('Игра WorldOfTanks запущена. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
  begin
   KillTask('WorldOfTanks.exe');
   Result := True;
  end else
   Result := False;
 if Result and not (CompareStr(GetDateTimeString('yyyymmdd', #0,#0), '{#ExpiryDate}') <= 0) then
  if MsgBox('Внимание!' #13#13 'С момента создания данной версии прошло больше 2-х недель.' #10#10 'Желаете проверить наличие обновлений?', mbError, MB_YESNO)=IDYES then
   begin
    ShellExec('', '{#DownloadUrl}', '' , '', SW_SHOW, ewNoWait, ResultCode);
    Result := False;
   end else
    Result := True;
end;

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Имеется скрипт с этого сайта нужно максимально автоматизировать , чтобы дата и время вводилось автоматом при создании в секцию

#define ExpiryDate "20160121"; //Дата в формате год-месяц-день

, ,.... да и еще помогите усовершенствовать скрипт, а то он не так работает, короче если сегодняшняя дата то сообщение не выдает, а если вчерашнее число даты поставить уже выдает сообщение предупреждениянадо чтобы примерно 1-2 недели не выдавал сообщение предупреждения.

'Скрипт '


#define DownloadUrl "http://l******/";
#define ExpiryDate "20160121"; //Дата в формате год-месяц-день

[Code]
function InitializeSetupDateTime: Boolean;
var
  ResultCode: Integer;
begin
  Result:=CompareStr(GetDateTimeString('yyyymmdd', #0,#0), '{#ExpiryDate}') <= 0;
If not Result then
  begin
    If MsgBox('Внимание!' #13#13 'С момента создания данной версии прошло больше 2-х недель.' #10#10 'Желаете проверить наличие обновлений?', mbError, MB_YESNO)=IDYES then
    begin
      ShellExec('', '{#DownloadUrl}', '' , '', SW_SHOW, ewNoWait, ResultCode);
      Exit;
    end
    else
      Result:=True;
  end;
end;

 

, Edited by Nowik1971

Share this post


Link to post

Short link
Share on other sites
Имеется скрипт с этого сайта нужно максимально автоматизировать , чтобы дата и время вводилось автоматом при создании в секцию

Справка в помощь.

Edited by Kotyarko_O
  • Upvote 2
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Имеется скрипт с этого сайта нужно максимально автоматизировать , чтобы дата и время вводилось автоматом при создании в секцию

типо так

#define AppName             "AppName"
#define MyInfoVer           "от {code:GetToday}"

[Setup]
AppId={{B92661CC-AF3A-4BBF-AB94-A3DFBB8AF5E0}
AppName={#AppName} {#MyInfoVer}
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
function GetToday(Param: String): String;
begin
  Result := GetDateTimeString('dd/mm/yyyy', #0, #0);
end;
Edited by Dark_Knight_MiX
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites
Nowik1971, on 21 Jan 2016 - 17:33, said: Имеется скрипт с этого сайта нужно максимально автоматизировать , чтобы дата и время вводилось автоматом при создании в секцию Справка в помощь. Изменено: Kotyarko_O, Сегодня, 18:

 

Спасибо мне уже помогли, и тебе на добром слове спасибо! И ничего не путается просто руками меньше вводить. Все просто отлично работает!

только вот жто скрипт надо так же чтобы на автомате сделать, и чтобы выдавал сообщение "С момента создания данной версии прошло больше 2-х недель."

не на следующий день, а действительно через пару недель.

#define DownloadUrl "http://l****/";
#define ExpiryDate "20160121"; //Дата в формате год-месяц-день

[Code]
function InitializeSetupDateTime: Boolean;
var
  ResultCode: Integer;
begin
  Result:=CompareStr(GetDateTimeString('yyyymmdd', #0,#0), '{#ExpiryDate}') <= 0;
If not Result then
  begin
    If MsgBox('Внимание!' #13#13 'С момента создания данной версии прошло больше 2-х недель.' #10#10 'Желаете проверить наличие обновлений?', mbError, MB_YESNO)=IDYES then
    begin
      ShellExec('', '{#DownloadUrl}', '' , '', SW_SHOW, ewNoWait, ResultCode);
      Exit;
    end
    else
      Result:=True;
  end;
end;
Edited by Nowik1971

Share this post


Link to post

Short link
Share on other sites

Зачем всё путать?

я показал как автоматом дату выводить

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

я показал как автоматом дату выводить

#define MyInfoVer           "от {code:GetToday}"

[Setup]
AppName={#MyInfoVer}

[Code]
function GetToday(Param: String): String;
begin
  Result := GetDateTimeString('dd/mm/yyyy', #0, #0);
end;

Это спокойно заменяется тем, ссылку на что я давал выше.

То есть, этим:

#define MyInfoVer GetDateTimeString('dd/mm/yyyy', #0, #0)

[Setup]
AppName={#MyInfoVer}
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

То есть, этим:

#define MyInfoVer GetDateTimeString('dd/mm/yyyy', #0, #0)

[Setup]
AppName={#MyInfoVer}

я подумал что так нельзя

  • Upvote 1

Share this post


Link to post

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...