Salut tous,
quel est le meilleur moyen pour éviter de lancer plusieurs fois le même exe?
Je voudrai qu'il n'y en ait qu'un seul qui s'exécute.
Merci.
Salut tous,
quel est le meilleur moyen pour éviter de lancer plusieurs fois le même exe?
Je voudrai qu'il n'y en ait qu'un seul qui s'exécute.
Merci.
parles tu d'un exe personnelle, ou alors des exe en generale?
un exe perso.
Je voudrai que quand on clic plusieurs fois sur monProg.exe, il n'y qu'un seul monProg.exe qui s'exécute.
Merciiii
Peux-tu nous dire dans quel language tu programme?
car personnelement je ne voix pas de solution "made by windows" donc tu dois pouvoir detecter lors du lancement de ton exe la presence d'un precedent lancement et bloquer l'execution...
essai en suivant cette piste
je programme en CPP avec VS.NET.
Je ne sais pas quel API utiliser, au démarrage de l'appli, pour voir s'il y a déjà une même appli qui s'exécute.
Existe-t-il une API qui avec le nom de l'exe soit capable de m'indiquer si ce programme tourne déjà?
Il te faut créer un objet kernel nommé, typiquement un Mutex. C'est une opération atomique, donc tu es assuré que même dans le pire des cas il est impossible de 2 exe créent le même mutex nommé en même temps.
Si la création réussie, alors il n'existait pas, alors ton programme est tout seul. Si cela échoue, c'est que ton programme tourne déjà, ou qu'un autre programme fait pareil avec le même nom de mutex (donc choisir un nom complexe).
Voir CreateMutex.
ou cet exellent article :
http://www.codeproject.com/cpp/avoidmultinstance.asp
Attention sous XP cela n'empêche pas d'avoir une instance de ton programme pour chaque session (utilisateur connecté), mais généralement c'est le comportement souhaité.
la méthode avec le mutex à l'air pas mal.
Merci![]()
Juste pour faire le chieur :
![]()
http://delphi.developpez.com/faq/?pa...tion#1instance
Cette question revient périodiquement et d'innombrables solutions sont disponibles sur le site.
Merci de chercher un peu
Bon bah moi aussi alors,Envoyé par Higgins
Met un petit tag [résolu] en cliquant sur le bpouton éponyme en bas a gauche de cette page![]()
Partager