Bonjour
J’ai un petit programme en QT4.2.2 + windows XP qui fonctionne un peu à la manière d’un notifieur : une icone dans le systray qui change d’aspect en fonction des réponses d’une tâche périodique, et ouverture d’une fenêtre uniquement lorsque l’intervention urgente de l’opérateur est nécessaire.
Bien que le programme soit prévu pour tourner en permanence, l’opérateur peut le fermer temporairement, puis le rouvrir par un raccourci bureau.
Mon problème est de savoir comment s’assurer qu’un clic sur ce raccourci bureau ne lancera pas une dexième fois l’appli si la première instance est toujours active.
J’ai regardé du côté Mutex, mais je ne vois pas comment ca peut marcher dans ce cas.
Et si possible je voudrais éviter la solution du flag dans un fichier temporaire …
Je sais pas comment tu peux te démerder, mais tu peux faire comme nombre d’applications : créer un fichier avec le pid du processus (au format texte, ou binaire via fwrite() ou équivalent), et vérifier son existence pour éviter de lancer le programme si jamais le pid existe déjà en mémoire.
J’avais vu la page de Trolltech lors d’une recherche google, mais l’exemple m’avait échappé.
En plus, j’avoue que j’avais un peu oublié, vu que ca ne fait pas partie de la doc fournie avec QT4.
J’avais bien vu la version QT4 ; c’est ce que je voulais dire en disant qu’elle existait “à côté”
Ce matin, j’ai donc téléchargé le .zip et j’ai installé le package.
D’après mes premières constatations, l’exemple donné fonctionne même mieux que je ne l’espérais, puisque non seulement il n’ouvre pas une deuxième instance, mais qu’en plus il nous replace dans l’existant
Il me reste à comprendre exactement comment ca marche, pour pouvoir l’intégrer à mon programme