Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ejecutable en delphi (https://www.clubdelphi.com/foros/showthread.php?t=34118)

zvf 27-07-2006 18:02:24

Ejecutable en delphi
 
Hola !! : (

Tengo una carpeta llamada SISGV, dentro de la cual tengo lo siguiente:

SISGV --> LIBRERIAS ---- > archivo.dll, archivo1.dll
-------- > MYSQL ------ > setup

La carpeta mysql, esta dentro de SISGV.

Lo que quiero hacer es, que al tener la carpeta de SISGV en disco c:, al ejecutar el programa en delphi, busque esa carpeta, copie los dll de librerias, a la carpeta system de windows, y despues ejecute el archivo setup, que esta dentro de mysql.

Si me pueden ayudar dandome alguna orientacion, bibliografia, consejos, lo que sea ...

MUCHAS GRACIAS !!!

zvf 02-08-2006 17:37:28

Se me hace extra;o que no me hayan contestado, porque siempre responden muy rapido.

Esto es algo que no se puede hacer con delphi?

roman 02-08-2006 17:46:21

No había yo visto este hilo, pero vamos a ver. Es que no me queda claro lo que preguntas. Quieres copiar archivos y ejecutar una aplicación. Lo primero lo haces con CopyFile y lo segundo con WinExec. ¿Es esto? Si no, deberás especificar más.

¿Fué suficientemente rápido esta vez? :p :D

// Saludos

Lepe 02-08-2006 19:02:39

Según intuyo, creo que es cuestión de InnoSetup o cualquier otro instalador. Así distribuyes un solo archivo que despues creará la estructura de carpetas, copiará las dll en la carpeta de windows y ejecuta el setup de mysql, completado el asunto, se eliminan los archivos temporales.

Ahora me estoy peleando con él y desde luego, en cuanto a libertad es .... infinito ....ito...ito...ito... :D


Saludos

roman 02-08-2006 19:14:30

Hombre, hacer una aplicación que use CopyFile y WinExec bien puede ser un instalador ¿no? Claro que, desde luego, si la intención es esa, instalar un programa, pues totalmente de acuerdo contigo: InnoSetup.

// Saludos

Lepe 02-08-2006 22:11:31

Quizás yo, por encontrarme en una situación muy similar, (en cuanto a estructuras de carpetas, archivos temporales y ejecutables en segundo plano) puede que me haya precipitado en contestar, (hasta obtener una respuesta de zvf no podremos saber su situación).

Yo al menos me empeñaba en hacerlo en el mismo ejecutable delphi, pero al ver lo que innosetup puede hacer (y solo he visto la punta del iceberg) prefiero hacerlo mediante el instalador.

Saludos

Sick boy 02-08-2006 22:43:03

Cita:

Yo al menos me empeñaba en hacerlo en el mismo ejecutable delphi, pero al ver lo que innosetup puede hacer (y solo he visto la punta del iceberg) prefiero hacerlo mediante el instalador.
Os recomiendo Istool, un gui para InnoSetup.

Hace más facil la creación de los scripts de innosetup.

Lepe 03-08-2006 10:37:43

Y por supuesto Inno Setup Form Designer, con el cual haces graficamente las ventanas personalizadas, despues copias el código a IsTools y voilá.

Aunque se haga las cosas con IsTools, recomiendo tener a mano el fichero de ayuda de Innosetup, no tiene desperdicio.

Saludos

Sick boy 03-08-2006 10:50:23

Pobre de mi, al ver que comentabas que estabas empezando con Inno Setup, pensé que os iba a descubrir algo, pero....
Cita:

Y por supuesto Inno Setup Form Designer, con el cual haces graficamente las ventanas personalizadas, despues copias el código a IsTools y voilá.
....parece que ya no hay nada más que descubriros !!!!!:o

jjejejeje, otra vez será.

Lepe 03-08-2006 16:19:20

Cita:

Empezado por Sick boy
Pobre de mi, al ver que ....

Ha quedado dicho en este hilo, puede que a zvf u otra persona le sirva ;)

Saludos

roman 03-08-2006 17:17:14

Cita:

Empezado por Sick boy
....parece que ya no hay nada más que descubriros !!!!!:o

¿Y los demás qué? :p

Mal no me vendría escuchar una que otra cosa. Yo he usado InnoSetup en su forma más básica. Partí de uno de los ejemplos sencillos y lo fui modificando para instalar mi programa pero de ahí no he pasado.

// Saludos

zvf 03-08-2006 18:02:03

Yo creo que con CopyFile y WinExec, estaria bien, quiero hacer que se copien esos archivos dll, y que solo se ejecute el archivo setup de mysql.

Ahora, lo del Innosetup, no lo entiendo. Tienen por ahi bibliografia que pueda utilizar?

Y ahora, la sintaxis de CopyFile y WinExec, cual es?

Lepe 04-08-2006 00:15:05

Innosetup es un programa que permite realizar el asistente de instalación (las típicas ventanas "El asistente le ayudará en la instalación del programa tal y cual".....Siguiente, Siguiente, Finalizar.

Agrega las entradas necesarias para que el programa se pueda desinstalar via Panel de Control de Windows, crea los accesos directos donde les digas (escritorio, menú inicio, menú Inicio -> Inicio, etc).

Lo mejor de todo, es que puedes personalizar totalmente las ventanas del asistente que se mostrará al usuario final.

El resultado es un único archivo llamado Setup.exe, vamos, el típico instalador.

El mejor punto por donde empezar... pues su página web http://innosetup.com/isinfo.php y no olvides el apartado "Third Party Files" que viene lo comentado en mensajes anteriores.

Saludos

zvf 04-08-2006 00:37:08

Muchas gracias!!
Si me va a servir mucho esta informacion para un futuro.

Por lo pronto, necesito solo copiar archivos, no necesito esas ventanas para el usuario, por eso me gustaria saber la sintaxis del winexec y del copyfile, para utilizarlos. Me pueden ayudar con eso?
:confused:

Muchas gracias por la bibliografia que me das, voy a revisarla, y me va a servir mucho. ;)

seoane 04-08-2006 01:50:19

Te han dado unas respuestas muy buenas, pero parece que nadie quiere explicarte lo que tu preguntas :D Aun así has tenido mucha paciencia, así que vamos a ver que podemos hacer.

Copiar todas las DLL de un directorio a otro con CopyFile:
Código Delphi [-]
procedure CopiarTodo(Origen, Destino, Ext: string);
var
  SR: TSearchRec;
begin
  if FindFirst(Origen + '*' + Ext, faArchive, SR) = 0 then
    repeat
      CopyFile(PChar(Origen + SR.Name), PChar(Destino + SR.Name), FALSE);
    until FindNext(SR) <> 0;
  FindClose(SR);
end;

// Para usarla
CopiarTodo('C:\SISGV\LIBRERIAS\','C:\WINDOWS\SYSTEM\','.dll');

En cuanto a lo de ejecutar un programa con Winexec:
Código Delphi [-]
  WinExec(PChar('C:\SISGV\MYSQL\setup.exe'),sw_show);

Sick boy 04-08-2006 08:14:01

Cita:

pero parece que nadie quiere explicarte lo que tu preguntas
Hombre Seoane, yo si que admiro tu paciencia, pero tu tampoco le has explicado nada, simplemente le has dado el código necesario.

El uso de ambas funciones no es nada complicado, y basta con escribirlas en el IDE y pulsar F1 para ver como funcionan.
De ese modo, en vez de darle los peces, le das una caña y aprende a pescar.

Pero sigue asi Seoane, me encantan los codigos que posteas sobre manipulación de graficos (que por cierto son mucho más complicados y seguro que más apreciados) y el resto de tus intervenciones.

Saludos


La franja horaria es GMT +2. Ahora son las 08:15:20.

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