es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo importar archivos .reg a través de Inno Setup

Tengo un archivo de registro (.reg) y necesito ejecutarlo mientras se instala en modo silencioso. No quiero usar la sección [Registry] para agregar cada clave de registro.

La clave de registro se encuentra en la ruta:
C:\MyInstaller\bathkey.reg

¿Es posible importar el archivo de registro sin agregar cada elemento a la sección [Registry]?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible importar el archivo del registro (.reg) sin añadir cada elemento a la sección [Registry]. Una forma de lograr esto es usar el parámetro /regfile con el comando RegEdit.exe.

    Aquí te explicamos cómo hacerlo:

    1. En tu script de Inno Setup, crea una función personalizada para ejecutar el archivo .reg usando RegEdit.exe:
    function ImportarArchivoRegistro(const ArchivoReg: String): Boolean;
    var
      CodigoResultado: Integer;
    begin
      Result := True;
      if not FileExists(ArchivoReg) then begin
        Log('ImportarArchivoRegistro: Archivo no encontrado - ' + ArchivoReg);
        Result := False;
      end else begin
        Log('Importando archivo de registro: ' + ArchivoReg);
        if not Exec(ExpandConstant('{win}\regedit.exe'), '/s "' + ArchivoReg + '"', '', SW_HIDE, ewWaitUntilTerminated, CodigoResultado) then begin
          Log('ImportarArchivoRegistro: Error al importar el archivo de registro - ' + ArchivoReg);
          Result := False;
        end else begin
          Log('Archivo de registro importado exitosamente: ' + ArchivoReg);
        end;
      end;
    end;
    
    1. En la sección [Code] de tu script, llama a la función ImportarArchivoRegistro() con la ruta de tu archivo .reg:
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      if CurStep = ssInstall then begin
        ImportarArchivoRegistro('C:\MiInstalador\clavebaño.reg');
      end;
    end;
    

    Esto ejecutará el archivo .reg de forma silenciosa durante el proceso de instalación. También puedes agregar manejo de errores y registro a la función ImportarArchivoRegistro() según tus necesidades.

Comments are closed.