Verifier si le programme est lancé mais ...

Résolu
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 - 7 févr. 2008 à 03:39
chris37000 Messages postés 42 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 12 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.

Merci de m'aider :)

[PaTaTe]

7 réponses

kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
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.

http://nezoserver.free.fr/ModBegin.zip

Pour faire fonctionner ce code, il te suffit d'ajouter le petit module dans ton projet est au chargement de ta form ou dans ton Sub Main, :

CheckBegin LE_NOM_DE_TA_FORM_A_DONNER_LE_FOCUS

Si c'est ta propre form : CheckBegin Me

Voilà dit moi si sa se rapproche au moin de se que tu voulais faire...

kakenette
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 févr. 2008 à 09:04
Salut,

Regarde cela : If App.PrevInstance = True Then End ' UnLoad Me

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 févr. 2008 à 09:05
Re,

Et cette source aussi....

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
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]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
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.





kakenette
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
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 :)

[PaTaTe]
0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
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]
0
chris37000 Messages postés 42 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 12 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.
0
Rejoignez-nous