Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EMPÊCHER D'OUVRIR PLUSIEUR FOIS UN PROGRAMME EN VB NET


Information sur la source

Catégorie :VB.NET Source .NET ( DotNet ) Niveau : Débutant Date de création : 26/04/2005 Vu : 6 609

Note :
6,83 / 10 - par 6 personnes
6,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note

Description

C'était simple en VB5 ou 6 je n'ai pas trouvé sur ce site comment le faire en vb .net, voilà! (source n'est pas de moi, mais absente de ce site,alors je l'ajoute)

 

Source

  • If (UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0) = True Then
  • MsgBox("Application deja ouverte !")
  • End
  • End If
If (UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0) = True Then
            MsgBox("Application deja ouverte !")
            End
        End If

Commentaires et avis

signaler à un administrateur
Commentaire de OneHacker le 26/04/2005 22:43:30

Enfin voilà ce que je cherchais ! C'est pas trop tôt ! Car c'est embêtant d'ouvrir plusieurs fois le même logiciel ! Merci beaucoup ! Je t'ai mis 5/10. Mais je pense que j'aurai du mettre plus !

signaler à un administrateur
Commentaire de Saros le 27/04/2005 13:36:18

If (x > 0) = True Then
On peut pas mettre
If x > 0 Then
en VB.NET ? Pas pratique...

signaler à un administrateur
Commentaire de dragon le 28/04/2005 00:11:33

juste ça ça aurait été assez

If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
            MsgBox("Application deja ouverte !", MsgBoxStyle.Critical, "Message à l'usager")
            End
        End If

signaler à un administrateur
Commentaire de OneHacker le 28/04/2005 23:51:23

Que signifie UBounds comme fonction ?!

Merci d'avance !

signaler à un administrateur
Commentaire de Saros le 29/04/2005 00:17:22

C'est l'indice du dernier élément d'un tableau de données

signaler à un administrateur
Commentaire de chris81 le 29/04/2005 11:46:08

code sympa MERCI

signaler à un administrateur
Commentaire de OneHacker le 01/05/2005 00:51:04

D'accord j'ai pigé donc si le Ubounds est supérieur à zero (un dans une collection) C'est que la même AppliY est plusieurs fois !

Merci !

C'est quoi l'inverse de ubounds pour avoir le premier element d'une collection ?!

signaler à un administrateur
Commentaire de julien__ le 01/05/2005 01:44:36

Eh bien le premier c'est LBound pour LowerBound et le dernier UBound pour UpperBound.

signaler à un administrateur
Commentaire de julien__ le 01/05/2005 01:48:13

C'est très partique pour les boucles For... Next, car si le For Each .... in ... est bien utile, lorsque tu as besoin de l'indice dans une boucle For Next et que tu ne connais pas la taille du tableau tu peux faire...
Dim i as Integer
Dim xxx(20) ' en admettant que tu ne connaisses pas 20
For i = 0 to xxx.GetUpperBound(0)

Next

signaler à un administrateur
Commentaire de OneHacker le 01/05/2005 09:40:18

En effet je comprend tout a fait ! La boucle !

signaler à un administrateur
Commentaire de GLLNS le 15/06/2005 12:22:04

Et si une autre app ayant le même ProcessName était déjà lancée?
Je pense que ton application ne va pas démarrer.

signaler à un administrateur
Commentaire de dragon le 15/06/2005 13:53:17

exact et il y a le bug où tu démarre une première instance, puis tu ouvre un autre logciel et après tu ouvres une 2e instance

le code regarde juste le dernier process. Par contre, c'est pas très dur a adapter

signaler à un administrateur
Commentaire de COlive le 05/08/2005 08:49:15

Perso moi j'utilise presque la même chose :

'Controle si une instance existe déjà
If Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then
            MsgBox("Application déjà lancée !")
            End
End If

Et à part le cas ou un autre soft est le même nom de processus, j'ai pas de bug.

(En fait je compte les nombre d'élément du tableau de process ayant le nom du mien, si il y en a plus d'un j'interdit le lancement.)

Voilou.
Pour le cas ou on veuille controler ceci et enlever le bug des noms de process, on peut ajouter un comparatif de la taille des exe ou bien des versions (2 soft de meme nom de meme taille et de meme version devient tres rare..)

signaler à un administrateur
Commentaire de Cocalight le 09/09/2005 13:20:32

En  vb6 sa donne quoi ?

signaler à un administrateur
Commentaire de Saros le 10/09/2005 12:57:34

Un truc genre App.PrevInstance te compte le nombre d'application déjà ouvertes
Je me souviens plus exactement de l'orthographe...

signaler à un administrateur
Commentaire de imanoda le 07/10/2005 22:56:13

salut moi j'etulise vb6 et je fais la meme code pour eviter le lancement de mes applications plus qu'une foit et le code doit etre ajouter dans la section load du premier form charge dans la memoire et le code comme suit:

If App.PrevInstance Then
   msgbox " LE PROGRAMME EST DEJA OUVERTE "
   end
End If

signaler à un administrateur
Commentaire de montabone le 05/11/2005 20:54:01

Pas mal.  Je viens de le rajouter dans mon code

signaler à un administrateur
Commentaire de Radwane37 le 04/12/2006 11:37:44

Vraiment sympa le code, merci
Raxius

signaler à un administrateur
Commentaire de Radwane37 le 04/12/2006 11:38:55

dans quel cas on utilise la boucle for each in next i?
merci de repondre, je débute dans VB .net
Raxius

signaler à un administrateur
Commentaire de Saros le 04/12/2006 20:06:17

Plutôt que de faire tourner une boule sur des ensemble numérotés, on peut la faire exécuter des opérations sur les éléments d'une collection quelconque
Par exemple desfois on veut exécuter un code sur tous les contrôles d'un form, dans une boucle for each in VB se charge de le lancer une fois et une seule sur chaque contrôle... plus simple
T'as regardé dans la MSDN ?

signaler à un administrateur
Commentaire de Radwane37 le 05/12/2006 08:02:10

Ha ok, merci de l'info.
A propos du code au dessus, il ne marche pas tout le temps.
Je vais jeter un oeil dans msdn

signaler à un administrateur
Commentaire de spyback le 27/06/2007 09:02:21

pas mall merci les gars

signaler à un administrateur
Commentaire de binet1 le 17/11/2008 19:46:28

oui mais comment fait-on alors pour activer l'autre instance avec des paramètres?

signaler à un administrateur
Commentaire de Saros le 17/11/2008 20:56:23

J'ai pas bien compris la question.

signaler à un administrateur
Commentaire de binet1 le 18/11/2008 03:20:43

en fait pour avoir une seule instance et passer des paramètres quand on le relance avec paramètre, on peut utiliser "StartupnextInstance" de vb 2008 (c'est ce qui remplace "App.PrevInstance" de vb6). Pour l'activer suffit d'aller dans les propriétés du projet et de cocher la case "application à instance unique" puis cliquer sur le bouton "Afficher les événements de l'application" ainsi le fichier "applicationEvents.vb" est ajouté à l'explorateur de code. On y trouver la fonction pour le StartupNextInstance  et on peut y ajouter le code que l'on veut. Les paramètres sont passé dans le tableau défini à "Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs" passé par valeur (par défaut e) soit e.CommandLine(0) où la position zéro contient le premier argument passé.
Ainsi on a qu'une instance de l'application et si on la relance il n'y a pas de nouvelle instance mais l'argument passé lors de la relance est passé au programme.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.