Comment éviter q'une application se lance plusieur fois

[Résolu]
Signaler
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004
-
Messages postés
69
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
19 octobre 2005
-
je réalise une application MFC de type MDI et je voudrais savoir comment faire pour éviter que mon application se lance plusieurs fois!!!!!!!!

6 réponses

Messages postés
69
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
19 octobre 2005
4
BOOL CMonApp::InitInstance()
{
HANDLE hSingle;

hSingle = ::CreateMutex(NULL, TRUE, m_pszExeName);
if (ERROR_ALREADY_EXISTS == GetLastError())
{
return FALSE;
}

// (...)

}

.486
.model flat, stdcall
option casemap:none
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
regarde sur msdn openmutex et releasemutex. ca empeche la meme application de se lancer deux fois.

a+ ;)
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
cosmobob> tu ne crois toujours pas qu'un utilisateur doit trouver son prog au 1er plan quand il clic le raccourci ou 2 clic exe ?
Ben c'est pas avec un mutex que pourra se faire.

Si meme exe:
- section shared, on enreg le hwnd de fenetre mere.

Si on redoute dupplication de l'exe a plusieurs endroits, alors section shared ne va plus. On reserve 4 octets dans le mafile de Windows par un filemapping et on y met egalement le hwnd. Cette methode est plus longue a ecrire mais est infaillible.

Dans les 2 cas, on est assure de ramener le prog au 1er plan.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004

scolinks> ce code permet d'éviter que mon application se lance plus qu'une fois.
mais comment faire pour la faire pour de ramener l'application au 1er plan
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004

pardon!!!!!!!
comment faire pour ramener l'application au 1er plan
Messages postés
69
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
19 octobre 2005
4
ShowWindow(hwnd,SW_HIDE); 

pour cacher et
ShowWindow(hwnd,SW_SHOW); 

pour montrer...

.486
.model flat, stdcall
option casemap:none