![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
).(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. |
|
#2
|
||||
|
||||
|
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).
|
|
#3
|
||||
|
||||
|
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;
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#4
|
||||
|
||||
|
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
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
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. |
|
#5
|
|||
|
|||
|
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?? |
|
#6
|
|||
|
|||
|
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. |
|
#7
|
||||
|
||||
|
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|