FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
¿Cuando termina de ejecutarse un .exe?
Hola ..
Estoy haciendo una aplicación en delphi6 en la cual tiene una opción que es la salva y restaura de la base de datos. Esta misma antes de salvarla la comparto con el Arj mediante este codigo. Código:
WinExec(PChar(Camino+#0),SW_SHOWMINNOACTIVE); donde Camino := 'C:\Control\ARJ.exe e -y A:\SBDCont.ARJ C:\Control';) Muy Agredecido ...
__________________
Saludos ... JLedian. |
#2
|
||||
|
||||
Pues que yo sepa con WinExec, no hay manera de saber cuando termina, porque según he experimentado inicia un hilo y devuelve el control al programa, con lo cual podemos pensar que ha terminado pero sigue en el hilo iniciado hasta que termina.
Un truco sucio, pero que resulta, sería crear un fichero bat, con las instrucciones pertinentes, pero la primera sería crear un fichero temporal, la segunda hacer la copia de seguridad y la tercer eliminar el fichero temporal y así nosotros desde Delphi esperaríamos hasta que el fichero temporal se eliminara. Puede quedar algo como esto. Código:
dir *.txt >espera C:\Control\ARJ.exe e -y A:\SBDCont.ARJ C:\Control del espera Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
Este procedimiento ejecuta la aplicación que le indiques y no regresa el control a tu aplicación sino hasta que la otra termine:
// Saludos |
#4
|
||||
|
||||
Estaba buscando esa función pero veo que ya ha dado la respuesta Román.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
||||
|
||||
Grasias
Muchas grasias a ambos, despues de probralas les comentos ...
__________________
Saludos ... JLedian. |
#6
|
||||
|
||||
Comentario (Importante)
Hola a todas las personas de este foro
Les cuento que probe el procedimiento de Roman y me ha sido muy útil, solo que no se si se podría agregar a el procedimiento, que la aplicación se ejecutase minimizada. Me fuera mucho más útil aun. Mil grasias a todos de antemano, y en especial a Roman.
__________________
Saludos ... JLedian. |
#7
|
||||
|
||||
En trucomania, el truco 285 es justo lo que buscas.
Saludos |
#8
|
||||
|
||||
No me sirvió el truco [285] del Trucomanía
Hola Lepe :
Probe el truco [285] del Trucomanía como me dices pero me da en esta linea el sgte error: Código:
wnd:=Handle; [Error] Unit1.pas(43): Undeclared identifier: 'Handle' Código:
//wnd:=Handle; Por favor si poder soluccionarmelo ... De todas formas muchas gracias.
__________________
Saludos ... JLedian. |
#9
|
||||
|
||||
Handle es el identificador de ventana al que ha de informar, en este caso Form1.Handle.
En algunos casos, cuando lo llamo desde una unidad aparte, suelo llamarlo con el parámetro application.Handle Yo tambien lo he usado para copias de seguridad de esta forma:
Saludos |
#10
|
||||
|
||||
Ok
Hola Lepe :
Lo probaré, como me dices con el : Código:
Wnd := Application.handle;
__________________
Saludos ... JLedian. |
#11
|
||||
|
||||
¡Vaya, vaya! ¡Qué bonito! Yendo a trucomanía cuando en casa tenemos la solución.
Al procedimiento original que te puse agrega las líneas:
después de StartInfo.cb := SizeOf(StartInfo); Con esto la aplicación que ejecutes se iniciará minimizada. // Saludos |
#12
|
||||
|
||||
!!! Ahora Sip.
Gracias Roman ..
Ahora si ... Todo marcha bien . Gracias una vez mas.
__________________
Saludos ... JLedian. Última edición por !3d1@n fecha: 19-01-2005 a las 15:49:18. Razón: corregir ortografía |
#13
|
||||
|
||||
me he retrasado un poco... pero en fins:
[ delphi ] codigo fuente aqui [ /delphi ] (sin los espacios dentro de los corchetes) Saludos. |
|
|
|