éviter qu'une application se lance plusieurs fois

Signaler
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
je réalise une application avec visual 5.0 (je suis obligé)
et afin d'éviter que mon application se lance plusieurs fois, lors du lancement de l'application ds le constructeur je crée un fichier verrous qu'on elle se lance pour une deuxième fois elle le trouve et affiche un message qui donne à l'utilisateur la possibilité soit de tuer le processus qui existe déjà ou ne rien faire.

le problème c'est que je n'arrive pas à trouvé le code nécessaire pour tuer un processus.
comment faire????????

14 réponses

Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
OpenProcess, TerminateProcess
mais c'est vraiment sauvage.

'normalement', on remet la 1ere instance en avant plan et la nouvelle doit se finir illico.

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

BruNews j ai pas compris ce que tu voulais dire???
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
sur quel point ?

User lance prog depuis raccourci, ok ?
dans WinMain avant tout, verif si ancienne instancenne en cours.
Si deja une, on la remet au 1er plan comme normal quand on lance un prog et return 0 illico pour cette nouvelle instance.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Tu peux aussi utliser un mutex pour éviter que ton application puisse être lancée plusieurs fois.

kaid.fr.st
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004

BruNews ton idée est trés bonne mais comment pourrais je implémenter cle aide moi je suis encore débutante.
Merci d'avance
Messages postés
71
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
12 août 2004

j ai oublié!!!!
je rélise une application MFC
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Je veux bien t'envoyer cela par mail mais ne sera pas MFC, devrait etre simple a implementer puisque juste a appeler 2 fonctions exportees dans un fichier h.
Je ne pose pas ici cause entier ecrit en asm dans le cpp et pas envie d'entendre crier au scandale.
Donne un mail par message prive, lien juste sur la gauche.
Pas de mail en clair sur forum sinon tu risques le spam.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
Au début du fichier:
#pragma data_seg("sec") 
LONG nCtApp = -1;
#pragma data_seg() 
#pragma comment(linker, "/section:sec,rws")


et au début du WinMain:
if(InterlockedIncrement(&nCtApp)) 
{
SetForegroundWindow(FindWindow(nom_de_la_fenêtre, NULL));
return 0;
}
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
ah oui comme c'est en MFC, pas dans WinMain mais par exemple dans InitInstance()
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
vecchio56> si exe a ete duplique a plusieurs endroits ceci ne fonctionne pas.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
c'est livre.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
c'est livre?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
ben oui, BruNews c'est un peu plus rapide que Colissimo comme service, pas vrai imanewin32 ?

ciao...
BruNews, Admin CS, MVP Visual C++