Ver Mensaje Individual
  #5  
Antiguo 11-08-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.310
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A ver, si no he entendido mal, la situación es esta:

Código:
ComprobarVersionEjecutable                      (1)
si (VersionAntiguaEjecutable) entonces
  CopiarEjecutable
  CopiarFicheroINI
sino
  ComprobarSiInstaladoInterbase                (2)
  si not (InstaladoInterbase) entonces
    InstalaInterbase                                  
  fin
  CopiarEjecutable
  CopiarBaseDatos
fin
(Acabo de recordar mis tiempos de pseudocódigo en la facultad...)

(1) Para comprobar la versión del EXE tienes dos posibilidades:
(a) Que en el ejecutable esté la información de versión; Si está la info de version puedes acceder a ella con GetFileVersionInfo; Revisa el truco 31, que hay en la sección de trucos.
(b) Si el ejecutable no tiene info de versión deberás hacerlo por fecha; Para acceder a las fechas de un fichero puedes ver el truco 72 en la seccion de trucos.

NOTA: Para saber si un EXE tiene esa información, puedes acceder a las propiedades desde el explorador de Windows. Prueba con unos cuantos ejecutrables de tu máquina y verás que en algunos esa información está rellenada y en otros no.

(2) Saber si InterBase está instalado:
Puedes comprobar las siguientes claves del registro, que son justo las qwue se crean cuando se instala Interbase desde un Inno Setup (el instalador de Interbase debe hacer lo mismo).

[Registry]
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: InterBaseGuardian; ValueData: {app}\bin\ibguard.exe; Flags: uninsdeletekey
Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: DefaultMode; ValueData: -r
Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: GuardianOptions; ValueData: 1
Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: ServerDirectory; ValueData: {app}\bin


Espero que te sirva.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita