Citation :
Donc on ne peut pas distinguer différentes instances du meme programme avec ca
|
Oui, c'est pour ca que le terme instance n'a rien à voir ... c'est comme wParam et lParam ...
wParam c'est censé être WORD PARAM = 16 bits
et pourtant ils sont tous les 2 32 bits ...
Pour détecter 2 "instances", il faut en effet créer un Mutex.
Au lancement de ton programme, tu créés un mutex avec un nom que tu as choisi. Si le création a échoué, c'est que ce Mutex existe déjà = il y a déjà une instance de ton programme qui tourne et qui a créé le Mutex. Donc tu quittes.
Si tu es sous WinXP, il faut cependant savoir que ton Mutex sera unique au sein d'une session.
WinXP permet en effet d'avoir plusieurs sessions ouvertes en même temps (~ plusieurs utilisateurs connectés).
Un Mutex n'est unique qu'au sein d'une session.
Si tu veux vraiment qu'1 seule instance de ton programme s'execute sur la machine (mis à part l'access hardware comme pour un graveur par exemple, je vois pas trop l'utilité), il faut préfixer le nom de ton Mutex par "GLOBAl\" ... sacahnt que le "\" n'est pas supporte par toutes les versions de Windows, faut détecter l'OS et tout et tout ...
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite