Verifier si le programme est lancé mais ... [Résolu]

Signaler
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
-
Messages postés
43
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2017
-
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

Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1
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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

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

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Re,

Et cette source aussi....

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
2
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]
Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1
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
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
2
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]
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
2
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]
Messages postés
43
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2017

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.