Instance unique [Résolu]

Signaler
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Salut:

Comment peut on faire pourque une application Windows ait une seule et une unique instance si on essaye de lancer d'autres instances de cette application?
 

5 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Avec le code de BruNews, la fenêtre du programme passe au premier plan dès qu'on essaie d'ouvrir une nouvelle instance. Si tu veux juste empêcher l'ouverture d'une nouvelle instance, tu peux utiliser CreateMutex() pour créer un Mutex ayant un nom de ton choix. Juste après l'appel à cette fonction, tu utilises GetLastError(). Si le code de retour est ERROR_ALREADY_EXISTS  alors une instance du programme est déjà en cours d'exécution. On peut ainsi quitter directement cette nouvelle instance après  avoir affiché un message si on le juge nécessaire. Ces deux fonctions doivent être appelées juste à l'entrée du programme.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
UNIQUE INSTANCE PROG (WIN32)
http://www.cppfrance.com/code.aspx?ID=25238

et pourquoi ducros il se décarcasse ???

ciao...
BruNews, MVP VC++
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Ducros ?
Ahhh c'est toi le poulet qu'on voit dans la pub alors !!!!

Shell
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
De mémoire la version proposée par BruNews est plus polyvalente. Elle parfait aux faiblesse du CreateMutex pour empecher tout type d'instance supplémentaire.
A confirmer ....

Shell
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

C'est juste de ce que j'ai besoin.

Pour résumer je dois faire ceci:





HANDLE handle =  CreateMutex(NULL  , FALSE, "mutex");

if (GetLastError ()  == 




ERROR_ALREADY_EXISTS




) {
    // il y a plus qu'une seule instance ... 
}



Merci tous ...