Vérifier une seule instance en multi-utilisateur [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
20 mai 2007
-
lefatalprogrammeur
Messages postés
3
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
20 mai 2007
-
salut

voilà mon problème :

pour vérifier que mon application est lancé qu'une seule fois, j'utilise un simple mutex ou
la class de ma fenêtre.

mais ça marche pas si plusieurs utilisateur sont "loggés" simutanément.

j'utilise la clé "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" pour démarrer le
programme avec mon PC. mais si je change d'utilisateur (sans fermer la session) ça lance
une nouvelle instance

merci de votre aide

4 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
Teste ainsi:
HANDLE hMutex=CreateMutex(0,0,"Global\onlyoneinstance");

ciao...
BruNews, MVP VC++
Messages postés
179
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010

code de création du mutex ?
Messages postés
3
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
20 mai 2007

c'est un mutex de base :

HANDLE hMutex=CreateMutex(0,0,"onlyoneinstance");

if (hMutex==0) crash();   // ça arrive jamais

if (GetLastError()==ERROR_ALREADY_EXISTS) return 0; // existe déjà > bye
//
//  le programme se lance.......
//
Messages postés
3
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
20 mai 2007

ça marche parfaitement !

mais j'avais vu nulle part le "Global"...

merci beaucoup !