Comment éviter q'une application se lance plusieur fois

Résolu
cs_imanewin32 Messages postés 70 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 12 août 2004 - 6 août 2004 à 12:50
scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 - 9 août 2004 à 16:56
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

scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 6
7 août 2004 à 09:29
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
3
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
6 août 2004 à 18:51
regarde sur msdn openmutex et releasemutex. ca empeche la meme application de se lancer deux fois.

a+ ;)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 août 2004 à 19:44
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++
0
cs_imanewin32 Messages postés 70 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 12 août 2004
9 août 2004 à 14:18
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_imanewin32 Messages postés 70 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 12 août 2004
9 août 2004 à 14:23
pardon!!!!!!!
comment faire pour ramener l'application au 1er plan
0
scolinks Messages postés 69 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 19 octobre 2005 6
9 août 2004 à 16:56
ShowWindow(hwnd,SW_HIDE); 

pour cacher et
ShowWindow(hwnd,SW_SHOW); 

pour montrer...

.486
.model flat, stdcall
option casemap:none
0
Rejoignez-nous