Lancer programme une seule fois

Résolu
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 29 déc. 2005 à 14:32
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 1 janv. 2006 à 11:59
Bonjour à tous,

Quelqun serait t'il comment il faut faire pour que quand je clique sur on executable plusieurs fois le programme ne se lance qu'une et unique fois, afin que je ne puisse pas lancer deux fois mon programme ?

Par avance, merci.

10 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 déc. 2005 à 14:49
Salut,

Cherche du côté des Mutex, on s'en sert souvent pour ce type de tâche, tu devrais trouver pas mal d'exemples.

/*
coq
MVP Visual C#
*/
3
cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
29 déc. 2005 à 14:53
Salut,

Un exemple ici :
http://www.csharpfr.com/code.aspx?ID=11548

Chris

N'oubliez pas de cloturer votre post.
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 déc. 2005 à 14:56
A noter bien évidemment que la solution de vérifier juste le nom de processus est à éviter absolument, quitte à passer par les process vérifiez aussi le chemin d'accès à l'executable afin de vérifier qu'il s'agit bien de votre programme.
Ensuite pensez aussi au contexte multi-utilisateur.

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 déc. 2005 à 15:25
Si les droits de l'utilisateur tentant de lancer la 2ème instance sont insuffisants le processus n'apparaitrat pas dans la liste.

/*
coq
MVP Visual C#
*/
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 déc. 2005 à 21:54
En fait je viens de me rendre compte que mon message précédent est ambigu :
"Si les droits de l'utilisateur tentant de lancer la 2ème instance sont insuffisants le processus n'apparaitrat pas dans la liste."
=> par "le processus" je parlais de la première instance lancée
Donc dans ce cas là il pourrait y avoir plusieurs instances, comme tu n'aurais pas connaissance de l'existence de la première.

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
30 déc. 2005 à 14:22
Oui et non : si les droits sont suffisants le processus de la première session sera visible dans la liste quand tu feras ton test dans la seconde...
Tu dois prévoir la vérification du propriétaire dans ta gestion de l'unicité si tu veux limiter l'unicité à la session et non au système.

Bref, vive les mutex, c'est en général moins problématique que les bidouilles avec les listes de processus.
Il suffit de le nommer en utilisant entre autre un guid pour éviter les colisions avec d'autres programmes.
Si tu veux gérer l'unicité par session il te suffira de rajouter un élément identifiant la session au nom, etc etc

/*
coq
MVP Visual C#
*/
3
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
29 déc. 2005 à 15:10
ok, merci de vos réponse mais si le nom du processus je le definis comme :
94374E65-7166-4fde-ABBD-4E943E70E8E8 je doute qu'il y ait d'autre programme qui se servent du même nom quand même.
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
29 déc. 2005 à 15:22
Si mon programme est lancé sur deux sessions differentes pourra t'il se lancer deux fois ?
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
30 déc. 2005 à 13:42
donc si le programme est lancé sur une session il pourra être lancé sur une autre session mais jamais deux fois sur la même session ?
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
1 janv. 2006 à 11:59
oui par exemple pour le nom du mutex je met le nom de l'utilisateur de la session + le nom de mon logiciel par exemple : ex : jeanclaudemonprogramme et si un autre se logue sur un compte different ca fera paulmonprogramme.
0
Rejoignez-nous