Ver Mensaje Individual
  #4  
Antiguo 09-12-2014
diegoferxmr diegoferxmr is offline
Registrado
NULL
 
Registrado: dic 2014
Posts: 3
Reputación: 0
diegoferxmr Va por buen camino
Red face

Cita:
Empezado por dec Ver Mensaje
Hola,



Creo que hay alguna opción para detectar si la aplicación está ejecutándose (de manera que el instalador te sugiere cerrarla antes de seguir) pero no para saber si la aplicación está instalada. De todas formas igual sí que hay manera de saberlo, puesto que no conozco bien todas y cada una de las opciones de Inno Setup, pero son muchísimas.

Por lo demás, en el código Pascal de arriba se usa una constante de Inno Setup: "{app}", pero, no puede usarse tal como se hace, sino que es menester usar cierta función "ExpandConstant" para convertir dicha constante en su valor correspondiente. Es decir, jhabría que hacer algo similar a esto:

Código Delphi [-]

var
  MyAppPath: string;

begin
  Log( 'InitializeSetup' );
  // Default.
  //
  Result := true;

  MyAppPath := ExpandConstant('{app}');

  if FileExists(MyAppPath + 'mi_archivo.xla') then 
  begin
    MsgBox('Mi aplicación ya está instalada, la instalación se cancelará', mbCriticalError, MB_OK);
    Result := False;
    Exit;
end
Hola.
Mil gracias por responder.
He compilado el código, sin embargo me sale el siguiente error:

Line 82,
column 3,
Uknown identifier: 'Result'

¿Quizás podría modificar el código así?:

Código Delphi [-]

var
  MyAppPath: string;

begin
  Log( 'InitializeSetup' );
  // Default.
  //
  MyAppPath := ExpandConstant('{app}');

  if FileExists(MyAppPath + 'mi_archivo.xla') then 
  begin
    MsgBox('Mi aplicación ya está instalada, la instalación se cancelará', mbCriticalError, MB_OK);
    Result := False;
    Exit;
else
    Result := true;
end

¿o así?:

Código Delphi [-]

var
  MyAppPath: string;

begin
  Log( 'InitializeSetup' );
  // Default.
  //
  MyAppPath := ExpandConstant('{app}');

  if FileExists(MyAppPath + 'mi_archivo.xla') then 
  begin
    MsgBox('Mi aplicación ya está instalada, la instalación se cancelará', mbCriticalError, MB_OK);
    Result := False;
    Exit;
  end
  begin
else
    Result := true;
end
end

Mil gracias para todo el que conteste.
Un saludo.
Responder Con Cita