Ver Mensaje Individual
  #9  
Antiguo 28-03-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Estaba buscando información sobre otra cosa y he ido a dar con este hilo. Aunque es ya de hace unos meses os pongo aquí como lo resuelvo yo en BCB.

En el fichero que lanza la aplicación (el .cpp asociado a su homónimo .bpr):
Código:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
     HWND OtraVentana;
     AnsiString cVersion = "Mi aplicación";

     OtraVentana = FindWindow(NULL, cVersion.c_str());
     if (OtraVentana != NULL)
     {
          Application->MessageBox("¡¡¡LA APLICACIÓN YA ESTÁ ACTIVA!!!", cVersion.c_str(), 48);
        ShowWindow(OtraVentana, SW_RESTORE);
        SetForegroundWindow(OtraVentana);
          return 0;
     }
     try
     {
          Application->Initialize();
          Application->Title = cVersion;
          Application->CreateForm(__classid(TfPersona), &fPersona);
          Application->Run();
     }
     catch(Exception &exception)
     {
          Application->ShowException(&exception);
     }
     catch(...)
     {
          try
          {
               throw Exception("");
          }
          catch(Exception &exception)
          {
               Application->ShowException(&exception);
          }
     }
     return 0;
}
//---------------------------------------------------------------------------
Me parece un método sencillo y elegante.
Responder Con Cita