jrsoftware.org/ishelp/index.php?topic=setupcmdline

у создать установщик с помощью Inno Setup, впервые используя этот инструмент.
То, что я пытаюсь сделать, - это обернуть существующий установщик существующего программного обеспечения более подробным самодельным установщиком (имеется в виду Setup.exe внутри Setup.exe).

Что до меня дошло после исследования, так это попросить установщика (Inno Setup * .exe) запустить включенный установщик (фактическая настройка программного обеспечения).
Зачем мне нужен еще один инсталлятор? Потому что я хочу дать ему несколько дополнительных функций.

На конкретном есть:Я хочу добавить ключ реестра в конце моей установки, как последний шаг, подходящий для соответствующей битовой системы (32/64-битная). И вот тут я прошу эксперта-помощь, пожалуйста. (основная проблема)

Мои проблемы в деталях следующие:

Мне удалось добавить ключ, используя[Registry] раздел Inno Setup. Тем не мение,[Registry] кажется, всегда бегать раньше[Run] - но мне нужен ключ, добавленный после установки (добавленный в regedit-путь, который создает сама установка), а не до этого, поэтому я удалил то, что уже работало (просто в неправильном порядке) в разделе[Registry], Для выполнения reg-add после основной установки я нашел две процедурыAfterInstall а такжеCurStepChanged/ssPostInstall, а такжеDeinitializeSetup что, кажется, не подходит для моей заботы (но думаю,AfterInstall будет то, что я ищу (?!), так как больше ничего не должно последовать, и я думаю, что он не запустится, если установка до этого уже не удалась (?!).Я не знаю Pascal-синтаксиса для добавления ключа реестра (строки) по существующему пути. Я мог бы добавить это под[Registry]Однако когда дело доходит до[Code]Я чувствую себя немного растерянным, даже сейчас я провел много исследований о функциях Inno Setup и тому подобном.Третья проблема заключается в том, что путь в реестре отличается в зависимости от того, является ли это 32- или 64-разрядной системой. Так что мне действительно нужен дополнительный запрос, проверяющий битовую систему перед добавлением того или иного пути / ключа (поскольку установка самой программы создает путь в зависимости уже от битовой версии), я нашел функциюIsWin64 (Boolean), теперь пытаюсь смешать функцию (bit-version-query) с процедурой (AfterInstall) звучит даже для меня как новичка неправильно. Плюс я попытался создать запрос if-else, и компилятор сказал мне, что я делаю это неправильно.if IsWin64 then... работает, но добавление еще не делает.

Итак, решениетеоретически примерно было бы что-то вроде ...

procedure MyAfterInstall();  
  function IsWin64: Boolean;  
      if 64-bit Reg-Add HKLM\SOFTWARE\Wow6432Node\A
      else Reg-Add HKLM\SOFTWARE\B

Извините, что не предлагать вам больше. Я обычно не пишу код.

Если уместно, это то, что у меня есть в моем разделе кода до сих пор:

[Code]
procedure DeinitializeSetup();
begin
  RegWriteStringValue(
    HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\A', 'ConnectionString ', 'Data Source=Test;');
end;

Причина, почему я использовалDeinitializeSetup потому что это одна вещь, которая работала для меня до сих пор, однако я знаю, что эта функция вызывается, даже если пользователь выходит из программы установки перед установкой чего-либо, что не очень хорошо. Я запускаю это после установки, потому что сама установка программного обеспечения создает путь, к которому я хочу добавить ключ, нет смысла иметь ключ, когда установка программного обеспечения не удалась ... Возможно, есть и лучший способ для этого.
Извинения за много слов, и заранее спасибо за любую помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос