Hola Foro! tiempo sin verlos, creo que si podrias iniciar la aplicacion clon de la actual antes de cerrarla, pues puedes comunicarlas con paso de mensajes a través del RegisterWindowMessage, solo tendrias q parar el arranque de la secundaria desde código hasta q la primera le comunique q ya ha terminado (en otras palabras: la primera espera el momento en que la segunda tenga conciencia para terminar), por ejemplo esta aplicación evita ser ejecutada si ya existe otra instancia de ella:
UINT gmShutDown;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{ gmShutDown=RegisterWindowMessage("6FBFC81A-D32A-4B8D-BB60-0390470F82CF");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,bool &Handled)
{ if(Msg.message == gmShutDown) //Recepción del mensaje de primera aplicación
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{ PostMessage(HWND_BROADCAST, gmShutDown, 0, 0); //Enviar el mensaje a las otras
//aplicaciones
}
Ojala te sirva!!!
|