IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

VB.NET Condition IF


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 44
    Par défaut VB.NET Condition IF
    Bonjour

    Je suis entrains de me faire un petit programme qui a pour fonction :
    Si internet explorer fonctionne, alors, MSGBOX "OK"
    Si internet et éteint, lalors, MSGBOX "Internet pas OK"


    j'ai trouver ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For Each p As Process In Process.GetProcesses
                If p.ProcessName = "iexplore" Then
                    Label1.Text = "ok"
                End If
            Next
    mais j'arrive pas a faire : ci je fait une condition : Ci p.ProcessName <= "iexplore" Then ...


    le but de ce programme, j'ai pris internet explorer en exemple, c'est de vérifier qu'un processus fonctionne en tache d'execution , et s'il ne fonctionne pas , alors il le lance .
    Le tout dans un TIMER .

    Merci d'avance ci vous avec une solution pour moi


    Voici mon code qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     For Each p As Process In Process.GetProcesses
     
                If p.ProcessName = "iexplore" Then
                    Label1.Text = "ok"
     
                ElseIf Not p.ProcessName = "iexplore" Then
                    Label1.Text = "no ok"
                End If
       Next

  2. #2
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Bonjour,
    En premier lieu si tu compares des chaines de caractère utilise string.equals("string2"). J'ai déjà eu des problèmes à cause de ça.

    Ensuite tu veux activer un processus si il ne l'ai pas. Pour savoir s'il ne l'ai pas il faut d'abord comparer tout les processus actif, le mieux c'est d'utiliser un booléen.
    For each processus
    if processus actif then
    passer le booléen en true
    end if
    next processus.

    En gros.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 44
    Par défaut
    Citation Envoyé par Uranne-jimmy Voir le message
    if processus actif then
    passer le booléen en true
    end if
    next processus.

    En gros.

    Bonjour
    Débutant en VB.Net , voici mes ligne de commande avec vos conseils :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each p As Process In Process.GetProcesses
                If p.ProcessName = "iexplore" Then
                    Label1.Text = "ok"
                  else 
                    Label1.Text = "pas OK "
                End If
            Next
    mais cella no fonctionne pas !!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 44
    Par défaut
    J'ai trouver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim erreur As Integer = 0
            For Each p As Process In Process.GetProcesses
                If p.ProcessName = "iexplore" Then
                    erreur = 1
                End If
            Next
     
            If erreur = 1 Then
                Label1.Text = "ok"
            Else
                Label1.Text = "pas ok"
            End If
        End Sub
    je suis nul en programmation , je suis ouvert a d'autre code source a fin de les comprendre et d’apprendre d'avantage .

  5. #5
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour fabdunet13,

    Le lien que je t'ai proposé plus haut fait référence à un snippet dans lequel il y a une fonction permettant de vérifier si un processus portant x nom est en cours.

    Voilà comment l'implémenter (dans une application Windows Form avec le formulaire par défaut nommé "Form1") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Public Class Form1
     
        ''' <summary>
        ''' Gestionnaire d'évènement "Load" de Form1. S'exécute lorsque l'application se lance
        ''' </summary>
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        If ProcessIsRunning("iexplore") Then
            Msgbox("Exists !")
        Else
            Msgbox("Not exists !")
        End If
     
    End Sub
     
        ''' <summary>
        ''' Fonction qui accepte 1 argument de type String = "Le nom du processus" dans sa signature. NB : Une signature de fonction ou procédure c'est ce qui se situe entre parenthèses à la suite du nom de la méthode (procédure ou fonction).
        ''' </summary>
    Private Function ProcessIsRunning(ByVal ProcName As String) As Boolean
        For Each ObjPro As Process In Process.GetProcesses
             If ObjPro.ProcessName.Contains(ProcName) Then
                 Return True
             End If
        Next
        Return False
    End Function
     
     
    End Class

    A+

  6. #6
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Citation Envoyé par Uranne-jimmy Voir le message
    Bonjour,
    En premier lieu si tu compares des chaines de caractère utilise string.equals("string2"). J'ai déjà eu des problèmes à cause de ça.
    Pour string.equals("string2") , l'opérateur == est surchargé non ?

  7. #7
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Je n'ai jamais utilisé cet opérateur en vb Oo Dans d'autres langage sans oui mais en vb pas du tout. Donc je peux pas te dire.

  8. #8
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Oups pardon en VB c'est un simple "="
    Et à priori il semble bien surchargé.
    Utiliser l'opérateur "=" permet de ne pas avoir à tester la nullité de la chaine

    Ca plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim test1 as string
    Dim test2 as String
    Dim r = (test1.Equals(test2))
    ca plante pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim test1 as string
    Dim test2 as String
    Dim r = (test1 = test2)

  9. #9
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Je trouve ça tout de même moins propre au final. En parallèle à equals on a d'autres façon de comparer des chaines de caractères, chacune a ses spécificités. Un opérateur qui permet de travailler sur des chaines vides ... euh ... Je vois pas vraiment l'intérêt, dans ce cas là il vaut mieux que ça plante pour qu'on se rende compte que les chaines sont vides, ce qui est généralement anormal.

  10. #10
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour fabdunet13,

    Détecter si u processus (par nom) est en cours :

    http://pastebin.com/u/3DotDev

    Je rajouterais ceci :

    ATTENTION : 1 processus qui porte le nom "iexplore" ne veut pas forcément dire que l'utilisateur est connecté à Internet. IE est un navigateur qui peut tout aussi bien faire appel à un réseau d'entreprise non connecté à Internet !

    PS : comme le processus IE est un exemple je suppose qu'en fait tu souhaites détecter un autre logiciel. C'était juste à titre info .

    A+

Discussions similaires

  1. [vb.net] Condition qui ne fonctionne pas
    Par dyree dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/06/2006, 09h55
  2. [vb.net] For Each .. avec condition
    Par arnolem dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/12/2005, 09h18
  3. [VB.net] Générer une date selon condition
    Par WriteLN dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2005, 16h12
  4. [VB.Net] DataGrid - Templates columns et condition
    Par pmithrandir dans le forum ASP.NET
    Réponses: 7
    Dernier message: 18/07/2005, 17h30
  5. [VB.NET] Changer de classe selon condition
    Par daner06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/10/2004, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo