Meilleur auteur de réponses
récupération d'un résultat de Ping

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 Subpour Form2
Me.WindowState = FormWindowState.Normal
TextBox1.Text &= "Timeout (ou erreur lors du ping)" & vbCrLf
MsgBox("verifier votre connexion")
End Sub
hatem
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
Toutes les 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 -