PDA

Ver la Versión Completa : Ejecutar algo tras cerrar aplicación.


MAXIUM
11-09-2008, 03:22:16
Hola, mi consulta sobre como puedo ejecutar algo tras cerrar la aplicación.

Me explico, la idea es que tras enviar el evento Close de la Forma, ejecute un programa externo pero asegurandose de que ya este previamente cerrada la primera antes de arrancar la segunda usando Winexec si que hay otra opción, gracias ;)

dec
11-09-2008, 03:33:17
Hola,

El siguiente procedimiento sirve para reiniciar nuestra aplicación, igual podría servirte algo similar:


procedure RebootApp();
begin
WinExec(PChar(ParamStr(0)), SW_NORMAL);
TerminateProcess(GetCurrentProcess, 0);
end;

MAXIUM
11-09-2008, 03:50:27
Vaya DEC, horas de trasnoche no?!, gracias por la ayuda. Se que el asunto es difícil ya que es como quitarse las calcetas con los zapatos puestos.

Meditando veo que tendré que usar otra aplicación anexa que se encargue de cerrar la mia, que verifique que así a sido y posteriormente arrancar otra.

procedure TForm1.Button1Click(Sender: TObject);
var
Mango:integer;
begin
Mango:=FindWindow(nil,'Calculadora');
if mango=0 then
ShowMessage('No encuentro esa aplicacion')
else
SendMessage(Mango,WM_CLOSE,0,0);
end;

Este código tampoco me es útil ya que el título de la ventana en mi caso cambia al azar jejeje.

El comando taskkill, solo arranca en Win con tecnología NT, y a mi me gustaría que también lo hiciese en Win98 (vamos no os burleís, mira que hay empresas muy tacañas :) )

De todos modos Gracias. Seguiré mañana a ver como alumbra el día :rolleyes:

coso
11-09-2008, 14:17:15
Hola, podrias probar dentro del mismo programa de delphi, en la unit del proyecto, despues de application.run poner application.free, y llamar la otra usando el winexec (en teoria la aplicacion ya esta completamente finalizada, y sus forms, cerradas y recursos liberados, por lo que "no existe" en el entorno del SO)