 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
rockfavc Cmdr


Registrado: 23 Ago 2002Mensajes: 138Ubicación: Colombia (Medellín)
|
Publicado: Vie 13 Sep, 2002 9:47 pm Asunto: No ejecutar 2 veces la Aplicación. |
|
|
Hola amigos del foro.
Qiero evitar que mi aplicacion no se ejecute dos veces, algo asi como si el usuario trata de ejecutarla de nuevo salga un mensaje que informe que ya se está ejecutando.
Lo anterior ya lo he hecho en Win95 y Win98 incluso en NT, pero en Win XP y 2000 no funciona, no produce los resultados deseados, es decir se abre varias veces la aplicacion.
Me pueden ayudar por favor???
Muchas gracias
Felices dias
Andres.  |
|
| Volver arriba |
|
 |
tonynet Invitado
|
Publicado: Lun 16 Sep, 2002 12:44 pm Asunto: Haber si alguien me ayuda ami!! |
|
|
y que funcion utilizas??
Yo uso esto, pero quizas no funcione en XP o no te valga si el caption de tu form es variable!!!
AnsiString MiProg = "Sin títulos - Bloc de notas"; //nombre q ves en servicios arrancados
HWND hwnd;
AnsiString prog = "c:\\windows\\notepad.exe";
hwnd = FindWindow(NULL, MiProg.c_str());
if (!hwnd)
WinExec(prog,SW_SHOW);
else
ShowMessage("Tronco, esto ya esta en marcha !!!");
No es muy elegante pero funciona.  |
|
| Volver arriba |
|
 |
mgf Invitado
|
Publicado: Mie 18 Sep, 2002 3:38 pm Asunto: |
|
|
Yo utilizo esto:
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
::CreateMutex(NULL,NULL,"MUTEX_MI_PROGRAMA");
if (GetLastError())
{
Application->Title = "TITULO";
HWND FirstWnd;
FirstWnd = :: FindWindow("TApplication", "TITULO");
if (::IsIconic(FirstWnd))
::ShowWindow(FirstWnd,SW_SHOWDEFAULT);
::SetForegroundWindow(FirstWnd);
}
else
{
Application->Initialize();
Application->Title = "TITULO";
Application->HelpFile = "";
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//--------------------------------------------------------------------------- |
|
| Volver arriba |
|
 |
mgf Invitado
|
Publicado: Mie 18 Sep, 2002 3:38 pm Asunto: |
|
|
Yo utilizo esto:
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
::CreateMutex(NULL,NULL,"MUTEX_MI_PROGRAMA");
if (GetLastError())
{
Application->Title = "TITULO";
HWND FirstWnd;
FirstWnd = :: FindWindow("TApplication", "TITULO");
if (::IsIconic(FirstWnd))
::ShowWindow(FirstWnd,SW_SHOWDEFAULT);
::SetForegroundWindow(FirstWnd);
}
else
{
Application->Initialize();
Application->Title = "TITULO";
Application->HelpFile = "";
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//--------------------------------------------------------------------------- |
|
| Volver arriba |
|
 |
Scooby Invitado
|
Publicado: Vie 20 Sep, 2002 2:15 pm Asunto: |
|
|
Yo utilizo esto.
WINAPI WinMain(HINSTANCE, ...........)
{
HANDLE mutex;
const char mutexname[] = "NombreAplicacion";
mutex = OpenMutex(MUTEX_ALL_ACCESS, false, mutexname);
if(mutex == NULL)
mutex = CreateMutex(NULL, true, mutexname);
else
{
Mensaje de advertencia de que la aplicación ya se encuentra en uso.
return 0;
}
ReleaseMutex(mutex);
return 0;
} |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|