Hola,
Cita:
Empezado por Ñuño Martínez
Si no recuerdo mal, InnoSetup por sí sólo ya detecta si la aplicación está instalada o no. ¿O me he perdido algo?
|
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' );
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