Sebopop2
Messages postés34Date d'inscriptiondimanche 17 décembre 2006StatutMembreDernière intervention16 juillet 2008
-
18 déc. 2006 à 02:46
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 2014
-
19 déc. 2006 à 02:08
Bonjour,
je fais un petit prog perso dans la barre des taches qui fait un ou deux trucs et je
voudrais un moyen tres tres simple de ne lancer qu'une seule instance,
quand je fais dans ma classe capp:
HWND wnd = findwindow(null, "ok")
if(wnd!=null)
return 0;
il y a une erreur!
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 18 déc. 2006 à 02:58
Salut:
Si la fenêtre est lancée directement par WinMain alors utilise CreateMutex/GetLastError pour ne pas lancer qu'une seule instance de ton application.
CreateMutex (...);
Si GetLastError fournit ERROR_INVALID_HANDLE alors il y a plus qu'une seule instance de ton application.
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 18 déc. 2006 à 15:31
une idée serait de réutiliser la source de BruNews à propos des instances uniques en spécifiant le handle de l'icone dans la barre des taches, ça devrai passer même si cet icone est finalement masqué
(tests à faire)
autrement, un mutex tout simple devrait régler le pb
derniere solution si tu le souhaites (mais plutot lourde à mon avi)
met une clef ds la BdR & check son existance.
par contre, ça peut empécher les exécutions suivantes si la clef n'est pas correctement supprimée en cas de sortie inopinée du prog.
la soluce ici serait alors une suppression au reboot dans la clef adhoc, mais là encore c'est lourd et il s'agit d'une rustine !