Jump to content
Korean Random

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


Recommended Posts

как можно добавить инсталлятор в исключения брандмауера? что то найти не могу

Где то видел код запуска от имени администратора, думаю должно помочь.

Link to comment
Short link
Share on other sites

Где то видел код запуска от имени администратора, думаю должно помочь.

да это я знаю в секции setup задается 

мне именно в исключения брандмауера недо

Link to comment
Short link
Share on other sites

да это я знаю в секции setup задается 

мне именно в исключения брандмауера недо

в факе есть про это, глянте...

@Kotyarko_O, Спасибо за разъяснения!

Ещё вопрос. Существует ли возможность как то отслеживать установку модпака? Или Вариант блокирования установки из вне? То есть, кто либо поставил мод пак, активировал, и всё на этом... больше ни кто не может воспользоваться. Такое вообще возможно?

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

Да, возможно.

Я знаю что нужен сервер. Получается принцип как в обычных программах, вводим ключ, он активируется на сервере, или сверяется с наличием на сервере ключа в файле, это теоретически конечно... Но все же есть примеры? Спасибо!


Как быть с этим?

у меня в препроцессоре такая процедура есть...

post-26543-0-80717700-1437258466.png

Link to comment
Short link
Share on other sites

Я знаю что нужен сервер. Получается принцип как в обычных программах, вводим ключ, он активируется на сервере, или сверяется с наличием на сервере ключа в файле, это теоретически конечно... Но все же есть примеры? Спасибо!

Как быть с этим?

у меня в препроцессоре такая процедура есть...

я ждал этого :)

procedure CreateLogModsChanged(CurStep: TSetupStep);
begin
   If CurStep=ssInstall then
begin
  CreateDir(ExpandConstant('{app}\{#MyAppName}'));
  DeleteFile(ExpandConstant('{app}\{#MyAppName}\{#LogMods}'));
  CreateLogMods;
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CreateLogModsChanged(CurStep);
end;

суть понял?

Link to comment
Short link
Share on other sites

я ждал этого :)

procedure CreateLogModsChanged(CurStep: TSetupStep);
begin
   If CurStep=ssInstall then
begin
  CreateDir(ExpandConstant('{app}\{#MyAppName}'));
  DeleteFile(ExpandConstant('{app}\{#MyAppName}\{#LogMods}'));
  CreateLogMods;
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CreateLogModsChanged(CurStep);
end;

суть понял?

Вот код... что не так, потому как ошибка та же...

function CreateLogMods: Boolean;
var
  I: Integer;
  FileName, DateTime: String;
begin
  Result:=True;
  DateTime:=GetDateTimeString('dd/mm/yyyy  hh:nn', '-', '-');
  FileName:=ExpandConstant('{app}\{#PACK}\{#LogMods}');
//----------------------------------------------------------------------------------------------\\
    For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do
         If WizardForm.ComponentsList.Checked[I] then
    begin
         SaveStringToFile(FileName, '{#LogMods} ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True);
      end;
end;
procedure CreateLogModsChanged(CurStep: TSetupStep);
begin
   If CurStep=ssInstall then
begin
  CreateDir(ExpandConstant('{app}\{#PACK}'));
  DeleteFile(ExpandConstant('{app}\{#PACK}\{#LogMods}'));
  CreateLogMods;
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CreateLogModsChanged(CurStep);
end;
Link to comment
Short link
Share on other sites

 

Вот код... что не так, потому как ошибка та же...

function CreateLogMods: Boolean;
var
  I: Integer;
  FileName, DateTime: String;
begin
  Result:=True;
  DateTime:=GetDateTimeString('dd/mm/yyyy  hh:nn', '-', '-');
  FileName:=ExpandConstant('{app}\{#PACK}\{#LogMods}');
//----------------------------------------------------------------------------------------------\\
    For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do
         If WizardForm.ComponentsList.Checked[I] then
    begin
         SaveStringToFile(FileName, '{#LogMods} ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True);
      end;
end;
procedure CreateLogModsChanged(CurStep: TSetupStep);
begin
   If CurStep=ssInstall then
begin
  CreateDir(ExpandConstant('{app}\{#PACK}'));
  DeleteFile(ExpandConstant('{app}\{#PACK}\{#LogMods}'));
  CreateLogMods;
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
CreateLogModsChanged(CurStep);
end;

тут все верно ты у себя найди еще 

procedure CurStepChanged(CurStep: TSetupStep);
begin
....
.....
....
end;

найди свой и в него впиши 

CreateLogModsChanged(CurStep);

проще свой скрипт скинь 

Link to comment
Short link
Share on other sites

procedure DeletModpakChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
  begin
   FileCopy(ExpandConstant('{app}\{#MyAppName}\backup\paths.xml'), ExpandConstant('{app}\paths.xml'), False);
   DelTree(ExpandConstant('{app}\{#MyAppName}'), True, True, True);
   DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
   CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;

 

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
DeletModpakChanged(CurUninstallStep); {удаление модпака}
end;

 

 

Что тут в коде не так, что он срабатывает, но не создаёт папку "res_mods\имя патча"? Остальное работает.

Edited by Darksoul
Link to comment
Short link
Share on other sites

 

 

Что тут в коде не так
procedure DeletModpakChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
  begin
   FileCopy(ExpandConstant('{app}\{#MyAppName}\backup\paths.xml'), ExpandConstant('{app}\paths.xml'), False);
   DelTree(ExpandConstant('{app}\{#MyAppName}'), True, True, True);
   DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
   CreateDir(ExpandConstant('{app}\res_mods'));
   CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;
  • Upvote 1
Link to comment
Short link
Share on other sites

Народ напомните как включить запоминание ранее установленных модов?... когда повторно перестанавливаешь модпак.

Edited by licimer
Link to comment
Short link
Share on other sites

procedure DeletModpakChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
  begin
   FileCopy(ExpandConstant('{app}\{#MyAppName}\backup\paths.xml'), ExpandConstant('{app}\paths.xml'), False);
   DelTree(ExpandConstant('{app}\{#MyAppName}'), True, True, True);
   DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
   CreateDir(ExpandConstant('{app}\res_mods'));
   CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
end;
end;

Спс, дружище, совсем забыл.

Link to comment
Short link
Share on other sites

Народ напомните как включить запоминание ранее установленных модов?... когда повторно перестанавливаешь модпак.

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

  • Upvote 1
Link to comment
Short link
Share on other sites

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

Да было такое. И при чем работало. Но в какой то момент перестало. После того как обновил сборку. Но самое интересное просто добавил модов, картинок и описание. В самом коде не ковырялся даже. 

В чем может быть причина?

 

И еще вопрос. Подскажите как растянуть по горизонтали строчку куда  вписывается путь установки игры. 

 

post-21236-0-80307200-1437403903_thumb.jpg

 

а то обрублено смотрится

Edited by licimer
Link to comment
Short link
Share on other sites

Спс, дружище, совсем забыл.

опять тупим  :ok:

 

И еще вопрос. Подскажите как растянуть по горизонтали строчку куда  вписывается путь установки игры. 

 

а то обрублено смотрится

в редакторе фор 

для компонентов можно сделать как и создание лога установки 

Link to comment
Short link
Share on other sites

Да было такое. И при чем работало. Но в какой то момент перестало. После того как обновил сборку. Но самое интересное просто добавил модов, картинок и описание. В самом коде не ковырялся даже. 

В чем может быть причина?

Значит всё-таки что-то делал, вплоть до нового типа установки. Вспоминай.

 

И еще вопрос. Подскажите как растянуть по горизонтали строчку куда  вписывается путь установки игры.

WizardForm.DirEdit.Width
WizardForm.DirBrowseButton.Width
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.

×
×
  • Create New...