[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