none
récupération d'un résultat de Ping RRS feed

  • Question

  •  

    Salut à tous,

    je suis entrain de mettre en place une application pour aider les utilisateurs d'un domaine pour reconnecter soit des imprimantes soit des lecteurs réseaux, j'aimerai avant chaque tentative de connexion, l'application fait un test de ping puis récupérer le résultat s'il est positif : connexion de la ressources, sinon, affichage d'une autre fenêtre dans laquelle est inscrit le time out et invitation à revoir les connexions réseaux.

    mon problème est que j'envoie 4 tests de ping, donc à chaque fermeture de la fenetre du time-out, la meme fenetre s'ouvre 4 fois, successivement, alors comment faire pour éviter ça et ne provoquer l'ouverture de cette fenetre qu'après la dernière erreur du time out.

     

     

    form1 :

     

    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
            Dim Ping As New Net.NetworkInformation.Ping
            Dim PingReply As Net.NetworkInformation.PingReply

            For i As Integer = 0 To 4
                Application.DoEvents()
                Try
                    ' On envoit la requete du ping
                    PingReply = Ping.Send("domain_conroller")
                   
                    Process.Start("\\domain_conroller\file.exe")

                Catch ex As Exception

                 'en cas d'erreur ouvrir le Form2

                    Form2.Show()
                    Form2.BringToFront()

      
                End Try

                ' Pause de 1 seconde entre chaque ping
                System.Threading.Thread.Sleep(1000)
            Next
            Ping.Dispose()
            Ping = Nothing
            PingReply = Nothing
        End Sub

    pour Form2

     

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.WindowState = FormWindowState.Normal
            TextBox1.Text &= "Timeout (ou erreur lors du ping)" & vbCrLf
            MsgBox("verifier votre connexion")
        End Sub

     


    hatem
    samedi 30 octobre 2010 10:30

Réponses

  • Bonjour,

    Tout simplement en vous aidant d'un booléen :

    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        Dim Ping As New Net.NetworkInformation.Ping
        Dim PingReply As Net.NetworkInformation.PingReply
    
        Dim auMoinsUneErreur As Boolean = False
    
        For i As Integer = 0 To 4
          Application.DoEvents()
          Try
            ' On envoit la requete du ping
            PingReply = Ping.Send("domain_conroller")
            
            Process.Start("\\domain_conroller\file.exe")
    
          Catch ex As Exception
    
           'en cas d'erreur ouvrir le Form2
            auMoinsUneErreur = True
      
          End Try
    
          ' Pause de 1 seconde entre chaque ping
          System.Threading.Thread.Sleep(1000)
        Next
        Ping.Dispose()
        Ping = Nothing
        PingReply = Nothing
    
        If auMoinsUneErreur = True Then
           Form2.Show()
           Form2.BringToFront()
        End If
      End Sub
    
    
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Proposé comme réponse EhJoe dimanche 31 octobre 2010 14:21
    • Marqué comme réponse hatem_tn lundi 1 novembre 2010 10:02
    dimanche 31 octobre 2010 08:27
    Modérateur

Toutes les réponses

  • Bonjour,

    J'ai trouvé un exemple, je ne sais pas si ça peut t'être utile (la récupération)

    With My.Computer.Network
     If .IsAvailable And .Ping(txtIpAdress.text) Then
      .UploadFile("c:\filetupload.ext", txtIpAdress.Text)
     End If
    End With
    

    Cordialement.

     


    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    samedi 30 octobre 2010 19:06
  • Bonjour,

    Tout simplement en vous aidant d'un booléen :

    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        Dim Ping As New Net.NetworkInformation.Ping
        Dim PingReply As Net.NetworkInformation.PingReply
    
        Dim auMoinsUneErreur As Boolean = False
    
        For i As Integer = 0 To 4
          Application.DoEvents()
          Try
            ' On envoit la requete du ping
            PingReply = Ping.Send("domain_conroller")
            
            Process.Start("\\domain_conroller\file.exe")
    
          Catch ex As Exception
    
           'en cas d'erreur ouvrir le Form2
            auMoinsUneErreur = True
      
          End Try
    
          ' Pause de 1 seconde entre chaque ping
          System.Threading.Thread.Sleep(1000)
        Next
        Ping.Dispose()
        Ping = Nothing
        PingReply = Nothing
    
        If auMoinsUneErreur = True Then
           Form2.Show()
           Form2.BringToFront()
        End If
      End Sub
    
    
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Proposé comme réponse EhJoe dimanche 31 octobre 2010 14:21
    • Marqué comme réponse hatem_tn lundi 1 novembre 2010 10:02
    dimanche 31 octobre 2010 08:27
    Modérateur
  • Salut,

     

    Merci beaucoup pour votre réponse.


    hatem
    lundi 1 novembre 2010 10:02