Lancer programme une seule fois [Résolu]

cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 29 déc. 2005 à 14:32 - Dernière réponse : cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention
- 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.
Afficher la suite 

10 réponses

Répondre au sujet
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 29 déc. 2005 à 14:49
+3
Utile
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#
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_69chris 318 Messages postés jeudi 30 janvier 2003Date d'inscription 30 décembre 2005 Dernière intervention - 29 déc. 2005 à 14:53
+3
Utile
Salut,

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

Chris

N'oubliez pas de cloturer votre post.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_69chris
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 29 déc. 2005 à 14:56
+3
Utile
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#
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 29 déc. 2005 à 15:25
+3
Utile
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#
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 29 déc. 2005 à 21:54
+3
Utile
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#
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 30 déc. 2005 à 14:22
+3
Utile
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#
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 29 déc. 2005 à 15:10
0
Utile
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.
Commenter la réponse de cs_emmanuel9
cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 29 déc. 2005 à 15:22
0
Utile
Si mon programme est lancé sur deux sessions differentes pourra t'il se lancer deux fois ?
Commenter la réponse de cs_emmanuel9
cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 30 déc. 2005 à 13:42
0
Utile
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 ?
Commenter la réponse de cs_emmanuel9
cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 1 janv. 2006 à 11:59
0
Utile
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.
Commenter la réponse de cs_emmanuel9

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.