Como saber si una aplicacion ya esta corriendo, en Visual C++ 6.0?

07/11/2003 - 15:00 por Guillermo.Ossvald | Informe spam
Hola,
Necesito poder saber desde una aplicacion en C++ 6.0 si ya
esta corriendo, esto es porque no deberian poder correr
dos instancia de esta al mismo tiempo, alguien tiene idea
de como se puede hacer esto?

Desde muchas gracias.
 

Leer las respuestas

#1 Luis Gómez [MS]
07/11/2003 - 17:06 | Informe spam
La forma más habitual de hacerlo es creando un objeto mutex global (con
nombre) y verificar su estado. El siguiente fragmente de código Win32
muestra cómo hacerlo:

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
HACCEL hAccelTable;

// Codigo previo...

// Controlar instancias previas
HANDLE hMtx = CreateMutex( NULL, FALSE,
"{FA531CC1-0497-11d3-A180-001052276C3E}" );
if( GetLastError() == ERROR_ALREADY_EXISTS )
return FALSE;

// Resto de código...

return msg.wParam;
}


Un mutex con nombre es un objeto Kernel que puede ser verificado desde
cualquier proceso. La primera aplicación lo creará sin problema, pero al
intentar crearlo desde un segundo proceso, retornará ERROR_ALREADY_EXISTS.
Retornando FALSE desde el WinMain provocamos la salida del programa.

Un saludo.

Luis Gómez
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.


""
wrote in message news:0a1a01c3a537$7a081440$
Hola,
Necesito poder saber desde una aplicacion en C++ 6.0 si ya
esta corriendo, esto es porque no deberian poder correr
dos instancia de esta al mismo tiempo, alguien tiene idea
de como se puede hacer esto?

Desde muchas gracias.

Preguntas similares