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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Rodrigo Corral González
07/11/2003 - 23:19 | Informe spam
Además del apuntado por Luis Goméz en su respuesta, otro enfoque que tambien
se utiliza en ocasiones es buscar la ventana principal de tu aplicación con
la función FindWindow. La ventaja es que una vez localizada la ventana
puedes traer esta a primer plano, en lugar de simplemente informar al
usuario de que no puede arracar otra instancia de la aplicación.

Un saludo
Rodrigo Corral González
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida