Empêcher d'exécuter 2 fois la même application! [Résolu]

Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
- - Dernière réponse : js8bleu
Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
- 14 janv. 2011 à 17:49
Bonjour à tous,

j'ai remarqué que souvent les utilisateurs lance une application sans avoir vérifié si elle n'avait pas déjà été préalablement lancée. J'aimerai éviter cela. En supposant que l'exe de mon application s'appelle monlog.exe, savez-vous comment puis-je faire ce contrôle s'il vous plaît?

Merci d'avance.

Cordialement.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
3
Merci
c'est pas grave. J'ai testé ce code qui marche :

    If App.PrevInstance Then
        MsgBox "Désolé, une instance est déjà active" & vbCrLf & "Le programme va s'arréter"
        End
    End If



Merci d'avance.

Cordialement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de js8bleu
Messages postés
11
Date d'inscription
lundi 3 janvier 2011
Dernière intervention
21 janvier 2011
0
Merci
bonjour

je pense que tu devrai contrôler les processus Windows et vérifier qu'il n'est pas déjà présent a l'ouverture de ton application
Après avoir placer ce contrôle dans ton code tu peux fermer ou continuer l'application.

cordialement

_____________________________________________________________________________

Je suis un petit débutant qui deviendra bientôt un grand avertis
Commenter la réponse de scoval
Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
0
Merci
Bonjour et Merci scoval pour ton intérêt. C'est ce à quoi je pensais mais comment le faire? Merci d'avance pour ton aide.

Cordialement.
Commenter la réponse de js8bleu
Messages postés
11
Date d'inscription
lundi 3 janvier 2011
Dernière intervention
21 janvier 2011
0
Merci
je pense que ce bout de code devrai suffire

 Dim Process2() As Process = Process.GetProcesses()

        For j = 0 To Process2.GetUpperBound(0)
            If Process2(j).ProcessName = "msmsgs" Then
                MsgBox("pas la")
            Else
                MsgBox("pas la")
            End If
        Next j


soit tu exécute comme cela ou alors tu inverse la sélection avec un "<>" a la place du "="

j'espère que ca te conviens


_____________________________________________________________________________

Je suis un petit débutant qui deviendra bientôt un grand avertis
Commenter la réponse de scoval
Messages postés
11
Date d'inscription
lundi 3 janvier 2011
Dernière intervention
21 janvier 2011
0
Merci
petite précision

If Process2(j).ProcessName = "msmsgs" Then


est un processus que j'ai pris au hasard pour tester avant de t'envoyer le code tu doit remplacer par le nom de ton application

(désoler si cette précision te donne l'impression que je te prend pour un idiot mais c'est le contraire je suis l'idiot qui à pas expliquer son code avant d'envoyer )
_____________________________________________________________________________

Je suis un petit débutant qui deviendra bientôt un grand avertis
Commenter la réponse de scoval
Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
0
Merci
Ce code est signalé en rouge, et le signe "=" est surligné. Il me semble qu'il manque quelque chose dans la déclaration :

Dim Process2() As Process = Process.GetProcesses()


Le message d'erreur est
"Erreur de compilation : Attendu : fin d'instruction".


Merci d'avance.

Cordialement.
Commenter la réponse de js8bleu
Messages postés
11
Date d'inscription
lundi 3 janvier 2011
Dernière intervention
21 janvier 2011
0
Merci
sous quel VB travail tu ?

moi avec visual basic 2008 express il ne me signal rien comme erreur et je n'ai pas importé de bibli dans mon nouveau projet.

sinon je ne connais pas d'autre formes pour cette instruction je débute sous VB et je ne connais que les bases du .net

cordialement


_____________________________________________________________________________

Je suis un petit débutant qui deviendra bientôt un grand avertis
Commenter la réponse de scoval
Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
0
Merci
je travaille avec VB 6.0
Commenter la réponse de js8bleu
Messages postés
11
Date d'inscription
lundi 3 janvier 2011
Dernière intervention
21 janvier 2011
0
Merci
je suis désoler mais je pense pas pouvoir t'aider peut être quelqu'un d'autre le pourra mais sinon essaie en 2 étape

Dim Process2() As Process
Process2 = Process.GetProcesses()


peut être que vb6 ne supporte pas l'affectation en même temps que la déclaration

en espérant que tu trouvera

cordialement


_____________________________________________________________________________

Je suis un petit débutant qui deviendra bientôt un grand avertis
Commenter la réponse de scoval

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.