Processus

cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 9 juillet 2008 - 18 oct. 2004 à 21:42
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 oct. 2004 à 22:59
Bonjours

J'ai un programme en mode : console application.
j'aimerai savoir comment voir si mon application est déjà lancée ou non. s'il y a plusieurs methode pouvez vous m'expliquer celle qui utilise a peut près ce chemin la :

- Ont va regarder dans la liste des processus si le nom de mon fichier est présent deux fois.
- S'il est présent deux fois , ont ferme le programme sinon on le laisse ouvert

Merci
Thomas

3 réponses

cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
18 oct. 2004 à 21:57
Y'a plus efficace, regarde les sources de BruNews (unique instance prog, je crois).
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
18 oct. 2004 à 22:31
Salut,
Tu déclare une variable globale comme ceci:
HANDLE  hMutex = NULL;

Dans ta fonction Main tu fais comme ceci:
int main ()
{
hMutex = CreateMutex(NULL, FALSE,("Mon Appli"));
if ( GetLastError() == ERROR_ALREADY_EXISTS )
     {
     if (hMutex ) CloseHandle(hMutex);
       printf ("Ce programme est dejà lancé !");
       return 0;//quitter ici
     }
// suite du code
//................
return 1;
}
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 oct. 2004 à 22:59
oui, pour une consolade un mutex sera bien suffisant.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous