Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
Poder: 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
Cita:
Empezado por Mona
G...no tuvo en cuenta el registro de windows...
...el aplicativo lo instala la entidad respectiva en cualquier ruta y nombre de directorio que la entidad estime. Sería poder buscar en todo el disco duro, el nombre de la aplicación.
(1) Par buscar en todo el disco, que parece que es la única alternativa, puedes usar el truco 82 (como ves tenemos trucos para todo...).

(2) Otra opción (o mejor, programarla como alternativa a la anterior) es ofrecer al usuario en la instalación la opción de seleccionar el directorio de instalación anterior; Si realmente cada entidad lo instala en un directorio, allí deben saber en cual.

Algo así:

(1) Seleccione el directorio de instalación anterior.
(2) El programa buscará el directorio por usted (este proceso puede tardar unos minutos).
__________________
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
  #2  
Antiguo 11-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Estoy echando un vistazo a la ayuda del programa y existen un conjunto de funciones "para archivos" que pueden utilizarse directamente (en el bloque "CODE") del Script de instalación.

Para lo que nos ocupa creo que podrían servir las siguientes funciones (documentadas en la ayuda del programa, como digo).

Código Delphi [-]
function FileSearch(const Name, DirList: string): String;
function FindFirst(const FileName: String; var FindRec: TFindRec): Boolean;
function FindNext(var FindRec: TFindRec): Boolean;
procedure FindClose(var FindRec: TFindRec);
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 12-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Usarás la utilidad IsTool ¿verdad?, así espero por tu comodidad

Pues ejemplo práctico:

Creo el instalador de un programa, y añado un archivo "NTDETECT.COM" tú tambien lo tendrás en c:\ así que puedes compilar el ejemplo que pongo.

Lo que hago es lo siguiente:
- Añado el archivo ntdetect y le digo que el directorio de destino es el TMP de la máquina de destino.
- En el apartado de instalar, lo mando a ejecutar con el parámetro /silent (en este caso no tiene sentido, pero bueno, es un ejemplo.
-Acabada la instalación, se borra el archivo ntdetect.com del directorio TMP el tuyo que existe en c:\ no se toca .

Además uso un "check", es decir, si se cumple una condición (en este caso si existe el "autoexec.bat") se copia el archivo .COM al directorio TMP y despues se intenta ejecutar. Si el archivo autoexec.bat no existe, no se hace nada de lo mencionado.

Los apartados "interesantes" son Files, Run y code.

Código:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVerName "My Program 1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.mycompany.com"
#define MyAppExeName "MyProg.exe"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\My Program Directory
DefaultGroupName={#MyAppName}
OutputDir=C:\temp
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: english; MessagesFile: compiler:Default.isl
Name: spanish; MessagesFile: compiler:Languages\Spanish.isl

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: C:\Archivos de programa\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\NTDETECT.COM; DestDir: {tmp}; Check: Instalarntdetect; Flags: deleteafterinstall
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon

[Run]
Filename: {tmp}\NTDETECT.COM; Parameters: " /silent"; WorkingDir: {tmp}; Flags: waituntilidle; Check: INSTALARNTDETECT

[ Code ]
{Todas las funciones funciones que se usan en un "check" deben ser
funciones que devuelvan un Boolean}

function INSTALARNTDETECT:Boolean;
begin
  {la comprobación que hago es insulsa, pero
   creo que se entenderá el uso}
  Result := fileExists('c:\autoexec.bat')
end;
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 12-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Te aconsejo que en lugar de añadir todo esto:
Código:
ComprobarVersionEjecutable                      (1)
si (VersionAntiguaEjecutable) entonces
  CopiarEjecutable
  CopiarFicheroINI
sino
  ComprobarSiInstaladoInterbase                (2)
  si not (InstaladoInterbase) entonces
    InstalaInterbase                                  
  fin
  CopiarEjecutable
  CopiarBaseDatos
fin
en el apartado de code, lo hagas mediantes Checks, son mucho más cómodos. Me explico mejor:

Código:
Source: C:\Archivos de programa\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: replacesameversion overwritereadonly
Source: C:\NTDETECT.COM; DestDir: {tmp}  Check: CopiarSiesNuevo and EjecutarNtDetect
Source: C:\MiArchio.Ini; DestDir: {app}; Flags: onlyifdoesntexist
Con eso estoy diciendo que MyProg.Exe, se copiará si la versión es igual o mayor que el que exista, además si el MyProg.exe que ya existe en el equipo de destino tiene el atributo de solo lectura, que InnoSetup se lo quite.

El archivo ntdetect.com se copiará si las dos rutinas que se añade en la sección code devuelven true ( CopiarSiesNuevo y EjecutarNtDetect).

El archivo .Ini solo se copia si no existe previamente, así no machacas las opciones que ya tenga definido el usuario.

Como ves, todas las opciones que tiene IsTools son muy muy prácticas y útiles.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 31-08-2006
Mona Mona is offline
Registrado
 
Registrado: jun 2006
Posts: 8
Poder: 0
Mona Va por buen camino
Hola, primero quiero disculparme, me ordenaron suspender lo que estaba haciendo para terminar un proyecto, y por eso hasta ahora puedo entrar a probar lo que me dicen aquí.

Les cuento que hice lo que escribieron y me saca el siguiente error, como NDETECT.COM no lo tengo en mi maquina hice la prueba con otro archivo y me dice:

Ocurrió un error al tratar de crear un archivo en la carpeta destino
"c:\DOCUME~1\Mona\LOCALS~1\Temp\is-E29T4.tmp Check: CopiarSiesNuevo and EjecutarNtDetect"
Error 267: The directory name is invalid
Haga clic sobre Reintentar para probar de nuevo, Ignorar para omitir este archivo (no recomendado) o Cancelar para interrumpir la instalación.

Probé con todas las opciones, y cuando le doy ignorar, me dice
"c:\DOCUME~1\Mona\LOCALS~1\Temp\is-E29T4.tmp\Ejemplo2.xml
CreateProcess falló; código 2
The system cannot find the file specified

Copié el ejemplo tal como aparece en el foro. En donde estoy cometiendo el error??
Responder Con Cita
  #6  
Antiguo 19-02-2013
teecweb teecweb is offline
Miembro
NULL
 
Registrado: feb 2013
Posts: 64
Poder: 14
teecweb Va por buen camino
como hacer busqueda en todo mi disco duro las versiones del sistema con INNOSETUP

hola......

Última edición por Casimiro Noteví fecha: 19-02-2013 a las 16:26:15.
Responder Con Cita
  #7  
Antiguo 19-02-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
Cita:
Empezado por teecweb Ver Mensaje
gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
inno setup 5 Cosgaya Varios 0 10-01-2006 13:09:38
Inno Setup Ini? marceloalegre Varios 2 07-12-2005 20:49:17
¿Cómo conecto las tablas de paradox para crear un instalador con Inno Setup?? nuri Varios 4 08-08-2005 18:56:36
Inno Setup tarco35 Varios 0 09-04-2005 16:48:01
Inno Setup Icono del instalador Descendents Varios 0 12-11-2003 13:39:59


La franja horaria es GMT +2. Ahora son las 15:07:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi