Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

No ejecutar 2 veces la Aplicación.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: No ejecutar 2 veces la Aplicación. Responder citando

Hola amigos del foro.
Cool 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.

Cool 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.

Crying or Very sad Me pueden ayudar por favor???

Very Happy Muchas gracias

Felices dias
Razz Andres. Razz
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Haber si alguien me ayuda ami!! Responder citando

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. Wink
Volver arriba
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.