Empêcher d'exécuter 2 fois la même application!

Résolu
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 - 14 janv. 2011 à 16:11
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre 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.

9 réponses

js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 2
14 janv. 2011 à 17:49
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.
3
scoval Messages postés 11 Date d'inscription lundi 3 janvier 2011 Statut Membre Dernière intervention 21 janvier 2011
14 janv. 2011 à 16:26
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
0
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 2
14 janv. 2011 à 16:35
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.
0
scoval Messages postés 11 Date d'inscription lundi 3 janvier 2011 Statut Membre Dernière intervention 21 janvier 2011
14 janv. 2011 à 16:51
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
0

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

Posez votre question
scoval Messages postés 11 Date d'inscription lundi 3 janvier 2011 Statut Membre Dernière intervention 21 janvier 2011
14 janv. 2011 à 16:57
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
0
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 2
14 janv. 2011 à 17:02
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.
0
scoval Messages postés 11 Date d'inscription lundi 3 janvier 2011 Statut Membre Dernière intervention 21 janvier 2011
14 janv. 2011 à 17:07
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
0
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 2
14 janv. 2011 à 17:16
je travaille avec VB 6.0
0
scoval Messages postés 11 Date d'inscription lundi 3 janvier 2011 Statut Membre Dernière intervention 21 janvier 2011
14 janv. 2011 à 17:21
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
0
Rejoignez-nous