[C con Clase] Aplicación corriendo!!!

Steven R. Davidson vze266ft en verizon.net
Lun Abr 21 19:12:32 CEST 2008


Hola Ernesto Luis,

Ernesto Luis wrote:

> Hola amigos,
> 
> Estoy haciendo una aplicación en c++, orientada a Base de Datos, y tengo 
> el sgte. Problemita:
> 
> Quisiera saber el modo o la función que me permita conocer si la 
> aplicación esta activa en la pc para lanzar una excepción y cerrar la misma.
> 
> Conozco la: HandleAllocated() , pero siempre me retorna TRUE, así que no 
> puedo hacer nada con ella.
> 
> Si puede ser con API me da igual…
> 

No estoy familiarizado con la función 'HandleAllocated()', pero sí he 
visto que existe como una propiedad en las VCL's.

De todos modos, si lo que quieres hacer es comprobar si existe una 
instancia de una aplicación particular, para así no permitir varias 
ejecuciones simultáneas de la misma aplicación, entonces sugiero usar 
las técnicas de programación de concurrencia existentes. La técnica más 
sencilla es crear un objeto de tipo "mútex" (o exclusión mutua). Por 
ejemplo, escribiremos el siguiente código nada más empezar el programa:

HANDLE hMutexUnica;

hMutexUnica = CreateMutex( NULL, FALSE, "MutexUnicaInstancia" );

if( GetLastError() == ERROR_ALREADY_EXISTS )
{
   // Error: ya existe una instancia de esta aplicación en ejecución
}


Espero que esto te sirva.

Steven







Más información sobre la lista de distribución Cconclase