Jump to content
Korean Random
EvilAlex

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

Recommended Posts

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

Share this post


Link to post

Short link
Share on other sites

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

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

Share this post


Link to post

Short link
Share on other sites

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

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

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

Share this post


Link to post

Short link
Share on other sites

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

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

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

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

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

Share this post


Link to post

Short link
Share on other sites

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

я что то такое где то писал или видел, вроде можно 

но нужно сервак иметь вроде 

Share this post


Link to post

Short link
Share on other sites

 

 

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

Share this post


Link to post

Short link
Share on other sites

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

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


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

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

post-26543-0-80717700-1437258466.png

Share this post


Link to post

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;

суть понял?

Share this post


Link to post

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;

Share this post


Link to post

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);

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

Share this post


Link to post

Short link
Share on other sites

 

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

в личных. Спасибо заранее...

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

Short link
Share on other sites

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

Edited by licimer

Share this post


Link to post

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;

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

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

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

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

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

 

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

 

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

 

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

Edited by licimer

Share this post


Link to post

Short link
Share on other sites

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

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

 

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

 

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

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

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

Share this post


Link to post

Short link
Share on other sites

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

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

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

 

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

WizardForm.DirEdit.Width
WizardForm.DirBrowseButton.Width

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