cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 2021
-
7 févr. 2008 à 03:39
chris37000
Messages postés42Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention12 décembre 2017
-
12 déc. 2017 à 10:26
Bonjour;
Je cherche un moyen propre et rapide de verifier si mon programme est déjà en cours d'execution et selon le cas, soit donne le focus à l'execution déjà en cours soit la "tuer" pour continuer avec la nouvelle execution.
J'ai cherché sur le site une manière de faire mais rien n'est concluant. Ou ca ne marche carrement pas ou mon programme plante sans préavis.
kakenette
Messages postés218Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention15 novembre 20091 8 févr. 2008 à 17:52
Voilà je t'ai fait un petit exemple que j'ai testé et qui marche pour ma part. Ce code marche que si ton application et lancée a partir du même répertoire et aillant le même nom, après comme je sais pas exactement se qu'il te faut, tu peut l'adapter.
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 7 févr. 2008 à 12:56
salut,
Merci mais ce n'est pas ce que je demande.
Ce code, je le connais (encore heureux d'ailleurs), moi je cherche une solution pour pouvoir garder la nouvelle execution en killant l'ancienne, avec App.PrevInstance c'est l'inverse.
Merci quand même
[PaTaTe]
Vous n’avez pas trouvé la réponse que vous recherchez ?
kakenette
Messages postés218Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention15 novembre 20091 8 févr. 2008 à 00:19
Ba c'est ( plus ou moins ) facile, tu as plusieurs méthode, et tu peux
également utiliser previnstance. Si tu veux garder la nouvelle exécuter est
terminé l’ancienne, il te suffit de ' kill ' l'ancienne processus en
l'identifiant. Personnellement je n'aime pas previnstance qui ne marche que si
l'application est lancée dans le même répertoire... Si ton processus à un nom
précis tu peux killer le processus en détectant sont Nom et ignorant le PID de
ta nouvelle application. tu peut également inscrire une information dans les
registres ou dans un fichier comme par exemple sont PID. Et au lancement ton programme
lit la donnée du PID pour kill l'ancienne application et ainsi de suite... et
pour le focus, il te faut utiliser les API Window. A++
Si tu t'y connaît pas trop dans le domaines des processus
mon message risque de te paraître un peux compliquer, fait le moi savoir et j'essayerai
si j’ai le temps de t'expliquer un peux mieux.
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 8 févr. 2008 à 01:43
Vu les pietres resultats que j'ai obtenus jusqu'à maintenant (en ayant le même cheminement d'idées), je ne serais pas contre un peu d'aide la dessus. Donc si ça ne te déranges pas, je suis preuneur :)
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 9 févr. 2008 à 00:48
Ce code correspond à ce que je cherchais à faire et fonctionne très bien :)
Un grand merci à toi, tu m'a sorti d'un mauvais pas ^^
Je te renverrais l'assensseur quand tu aura besoin lol
[PaTaTe]
chris37000
Messages postés42Date d'inscriptionvendredi 22 décembre 2000StatutMembreDernière intervention12 décembre 2017 12 déc. 2017 à 10:26
Bonjour,
Désolé si ce post est très ancien, mais c'est dommage que l'on est pas l'explication qui vous a réussi, car je suis dans le même cas. Je n'arrive pas à voir en debug ou mon code merdouille. Mais parfois lorsque je ferme mon logiciel tout se passe bien, mais si je le relance il me dit que le processus existe déjà.
Cela arrive rarement, mais cela arrive. J'aimerai donc pouvoir killer le process avant d’ouvrir le suivant, à défaut, bien-sûr, de trouver ce qui cloche à la fermeture, ce qui serait préférable, mais rien à faire en debug il ne me le fait pas et en normale c'est vraiment pas flagrant puisque rare.
Je précise que si je kill le process dans le gestionnaire de tache cela fonctionne ensuite bien-sur.