Escribir una clave de registro específica de 32/64 bits al final de la instalación en Inno Setup

Quiero crear un instalador con Inno Setup, la primera vez que uso esta herramienta.
Lo que intento hacer es envolver un instalador existente de un software existente con un instalador hecho a sí mismo más detallado (es decir, un Setup.exe dentro de un Setup.exe).

Lo que funciona para mí después de investigar hasta ahora es pedirle al instalador (Inno Setup * .exe) que ejecute el instalador incluido (configuración de software real).
¿Por qué necesito otro instalador? Porque quiero darle algunas funciones adicionales.

En particular es:Quiero agregar una clave de registro al final de mi instalación, como último paso, adecuada para el sistema de bits relevante (32/64 bits). Y aquí es donde pido ayuda de expertos, por favor. (principal preocupación)

Mis problemas en detalle son los siguientes:

Logré agregar la clave usando el[Registry] sección de Inno Setup. Sin embargo,[Registry] parece correr siempre antes[Run] - pero necesito la clave agregada después de la instalación (agregada en una ruta regedit que la instalación misma crea), no antes, así que eliminé lo que ya funcionó (solo en el orden incorrecto) en[Registry]. Para lograr un reg-add después de la instalación principal, encontré los dos procedimientosAfterInstall yCurStepChanged/ssPostInstallyDeinitializeSetup que parece no encajar tan bien para mi preocupación (pero pensandoAfterInstall sería lo que estoy buscando (?!) ya que se supone que nada más vendrá después y creo que no se ejecutará, si la instalación anterior ya falló (?!).No conozco la sintaxis de Pascal para agregar una clave de registro (cadena) bajo una ruta existente. Podría agregarlo debajo[Registry], sin embargo, cuando se trata de[Code]-sección Me siento un poco perdido, incluso he investigado mucho sobre las funciones dadas de Inno Setup y demás.El tercer problema es que la ruta en el registro difiere, dependiendo de si se trata de un sistema de 32 o 64 bits. Entonces, realmente necesito una consulta adicional aquí para verificar el sistema de bits antes de agregar una u otra ruta / clave (porque la instalación del programa en sí crea la ruta dependiendo de la versión de bit ya), encontré la funciónIsWin64 (Boolean), ahora tratando de mezclar una función (bit-version-query) con un procedimiento (AfterInstall) suena incluso para mí como principiante equivocado. Además, intenté crear una consulta if-else, y el compilador me dijo que lo estaba haciendo mal.if IsWin64 then... funciona, pero agregar otro no lo hace.

Entonces la soluciónEn teoria más o menos sería algo así como ...

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

Perdón por no tener que ofrecerte más. Normalmente no estoy codificando.

Si es relevante, eso es lo que tengo en mi sección de código hasta ahora:

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

Razón por la que uséDeinitializeSetup fue porque es una cosa que funcionó para mí hasta ahora, sin embargo, sé que esta función se llama incluso si el usuario sale de la configuración antes de instalar cualquier cosa, lo que no es tan bueno. Estoy ejecutando esto después de la instalación porque la instalación del software en sí misma crea la ruta a la que quiero agregar la clave, no tiene sentido tener la clave mientras falla la instalación del software ... Quizás también haya una mejor manera de hacerlo.
Disculpas por muchas palabras, y gracias de antemano por cualquier ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta