Jump to content
Korean Random
EvilAlex

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

Recommended Posts

Автоматически игру найти можно в случае её установки в системе. В любом другом случае (писал в предыдущем посте) это невозможно.

Старые версии инсталлятора игры вносили данные в ветке HKLM, сейчас вносит в HKCU. Можно совместить поиск по ключу из двух веток и получение пути:

[Setup]
DefaultDirName={code:GetInstDir}

[~~Code~~]
function GetInstDir(const ResultCode: String): String;
begin
  If not RegKeyExists(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1') then
  begin
    If RegKeyExists(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1') then
    RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation',  ResultCode);
    If ResultCode <> '' then Result:=ResultCode;
  end
  else
    RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation',  ResultCode);
    If ResultCode <> '' then Result:=ResultCode
  else
      Result:=ExpandConstant('C:\Games\World_of_Tanks');
end;

В данном случае идёт поиск в HKLM, если нет такого ключа, то в HKCU, если и там нет, то возвращает значение C:\Games\World_of_Tanks (сюда по умолчанию предлагает установить игру инсталлятор WoT).

 

 

Вот что выдает

Required function or procedure 'GetInstrDir' not found

Share this post


Link to post

Short link
Share on other sites

Apmageddon, дальше своей головой думай что и куда вставлять. Одна строка из-за особенностей вставки кода на этом форуме изменена. Какая - додумаешься сам. Во всех моих постах так сделано.

Edited by AtotIK

Share this post


Link to post

Short link
Share on other sites

 

 

Одна строка из-за особенностей вставки кода на этом форуме изменена.
Можно не изменять её. Этот форум её нормально принимает.

Share this post


Link to post

Short link
Share on other sites

Можно не изменять её. Этот форум её нормально принимает.

Хочу что бы всё цветное было! :heh:

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Вот что выдает

Required function or procedure 'GetInstrDir' not found

function WotDir(S:String): String; 
var
  ResultCode: String;
begin
  If not RegKeyExists(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1') then
  begin
    If RegKeyExists(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1') then
    RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation',  ResultCode);
    If ResultCode <> '' then Result:=ResultCode;
  end
  else
    RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation',  ResultCode);
    If ResultCode <> '' then Result:=ResultCode
  else
      Result:=ExpandConstant('C:\Games\World_of_Tanks');
end; 

  • Downvote 2

Share this post


Link to post

Short link
Share on other sites

Вот что выдает

Required function or procedure 'GetInstrDir' not found

[setup]

DefaultDirName={code:GetInstDir}

 

пропиши если ты не знаком с языком программирования лучше не суйся)

Edited by TneRED
  • 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

 

 

Как сделать так, чтобы пункт был неактивен. Чтобы его было видно (но был серый) и его было нельзя выбрать.
Дописать компоненту флаг fixed.
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Еще маленький вопрос.

Как сделать принудительную установку моего файла. можно даже, чтобы он не отображался в выборе)

 

P.s. Искал поиском в теме, не нашел

Edited by guceds

Share this post


Link to post

Short link
Share on other sites

Да не присваивай их к компонентам и всё. Логически подумать никак? :wah:

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Да не присваивай их к компонентам и всё. Логически подумать никак? :wah:

Так, просто валенок :D Мысль была, но пробовать не стал, решил уточнить. Спасибо за прозрение :)

 

Share this post


Link to post

Short link
Share on other sites

Щас наверно очень глупый вопрос задам.... но все же. На каком языке программирования написан данный скрипт? (Мод пак)... просто хочу уже меньше спрашивать. посоветуйте материалы для изучения пожалуйста.

Share this post


Link to post

Short link
Share on other sites

@licimer, objectPascal.

Для изучения можете взять встроенную справку и сборник примеров (есть почти всё, что нужно).
Здесь я давал ссылку на расширенный компилятор с полу-русскоязычной справкой и встроенной сборкой примеров.

Share this post


Link to post

Short link
Share on other sites

Я не имею ввиду что я не смог установить! Я все варианты перепробвал которые нашел с 1 по 40 страницы ток 3 варианта нашел(От самого автора,с права картинка и тоже самое с коментами) Мне не понравилась не одна из вариантов  просто хочу еще что нибуть другое попробывать, лень листать эту тему ведь тут не 30 страниц:)

Также ищу код на проверку запуска клиента игры тоесть процесса worldoftanks.exe и чек версий клиента

Тебе лень, а нам нет?

Share this post


Link to post

Short link
Share on other sites

@licimer, objectPascal.

Для изучения можете взять встроенную справку и сборник примеров (есть почти всё, что нужно).

Здесь я давал ссылку на расширенный компилятор с полу-русскоязычной справкой и встроенной сборкой примеров.

спасибо. изучу

Share this post


Link to post

Short link
Share on other sites

Тебе лень, а нам нет?

Ну во первых это вопрос был кто тут часто сидит и какие варианты примеров есть.

Share this post


Link to post

Short link
Share on other sites

Ну во первых это вопрос был кто тут часто сидит и какие варианты примеров есть.

Загугли форумы inno

Edited by Dark_Knight_MiX

Share this post


Link to post

Short link
Share on other sites

Всем привет,народ!
Подскажите пожалуйста,как правильно организовать PMOD в своём мод паке.
Пункт PMOD c выбором компонентов,хочу что бы выбрал к примеру "Информация об вашем респауне на экране загрузки" он автоматом с false на true поменялся,можно ли такое сделать или же есть другие правильные варианты?Очень надеюсь на помощь,мозг подкипает уже.

Share this post


Link to post

Short link
Share on other sites

Всем привет,народ!

Подскажите пожалуйста,как правильно организовать PMOD в своём мод паке.

Пункт PMOD c выбором компонентов,хочу что бы выбрал к примеру "Информация об вашем респауне на экране загрузки" он автоматом с false на true поменялся,можно ли такое сделать или же есть другие правильные варианты?Очень надеюсь на помощь,мозг подкипает уже.

сначала сделай установку дефолта, а потом просто заменяй файлы 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Как установить какой либо файл в res_mods при деинсталляции и после восстановления бэкапа?

 

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
  begin
  if not DirExists(ExpandConstant('{app}\res_mods')) then CreateDir(ExpandConstant('{app}\res_mods'));
  CreateDir(ExpandConstant('{app}\res_mods\{#MyAppVer}'));
  if DirExists(ExpandConstant('{app}\backup')) then
  begin
   if MoveDir(ExpandConstant('{app}\backup\'), ExpandConstant('{app}\res_mods\')) then
    DelDir(ExpandConstant('{app}\backup'), False);
  end;
 end;
end;

Edited by -zav-

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