Bonjour à tous,
je me remets après un long passage à vide au basic ... et ai un probleme dans le code ci-dessous.
Le principe : pour tester une connection ADSL envoyer un ping et, si il marche en déduire que la liaison est ok, sinon pinguer une deuxième et, si besoin une troisième avant de déduire que la connexion est HS.
Le problème : quel que soit le résultat du ping (je deconnecte le pc par exemple), je ne catch jamais d'erreur!!
Help, help ..
Merci d'avance
Eric

Code :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
Imports System
Imports System.Threading
Module pingctrlerreur
 
    Sub Main(ByVal cmdArgs() As String)
        Dim millisecondsTimeout As Integer
        Dim Connecte As Boolean
        Dim nouveaunom, vrainouveaunom As String
        Dim AdressesPing(3) As String
        Dim IpAddr As String
        Dim Ping As New Net.NetworkInformation.Ping
        Dim PingReply As Net.NetworkInformation.PingReply
        millisecondsTimeout = 30000
        Connecte = False
        If My.Computer.FileSystem.FileExists("test.txt") Then
            nouveaunom = "C" & DateString & TimeString & ".txt"
            vrainouveaunom = Replace(nouveaunom, ":", "")
            My.Computer.FileSystem.RenameFile("test.txt", vrainouveaunom)
        End If
        If cmdArgs.Length > 0 Then
            For argNum As Integer = 0 To UBound(cmdArgs, 1)
                AdressesPing(argNum) = cmdArgs(argNum)
            Next argNum
        Else
            AdressesPing(0) = "194.2.0.50"
            AdressesPing(1) = "194.2.0.50"
            AdressesPing(2) = "194.2.0.50"
        End If
        My.Computer.FileSystem.WriteAllText("C:test.txt", _
        "PING sur " & AdressesPing(0) & " " & AdressesPing(1) & " " & AdressesPing(2) & " " & " le " & DateString & " " & " à " & TimeString & Chr(13), True)
        While True
            Try
                ' On envoit la requete du ping
                IpAddr = AdressesPing(0)
                PingReply = Ping.Send(IpAddr)
                ' si la connection est déjà connue, on ne fait rien sinon on la note dans le fichier
                If Not Connecte Then
                    Connecte = True
                    My.Computer.FileSystem.WriteAllText("C:test.txt", "C" & "," & "1," & AdressesPing(0) & "," & DateString & "," & TimeString & Chr(13), True)
                End If
            Catch ex As Exception
                ' En cas d'erreur ping deuxieme IP
                Try
                    ' On envoit la requete du ping
                    IpAddr = AdressesPing(1)
                    PingReply = Ping.Send(IpAddr)
                    ' On affiche le résultat du ping
                    ' tant que ça marche, on ne fait rien
                    ' si le ping ne marche pas le catch ex as exception doit prendre le controle
                Catch ex1 As Exception
                    ' En cas d'erreur sur deuxieme IP ping troisieme IP
                    Try
                        ' On envoit la requete du ping
                        IpAddr = AdressesPing(2)
                        PingReply = Ping.Send(IpAddr)
                        ' On affiche le résultat du ping
                        ' tant que ça marche, on ne fait rien
                        ' si le ping ne marche pas le catch ex as exception doit prendre le controle
                    Catch ex2 As Exception
                        ' En cas d'erreur sur la troisième IP : 
                        ' si la deconnection est déjà connue on ne fait rien sinon 
                        ' on écrit la deconnection dans le fichier
                        ' et on note la déconnection
                        Connecte = False
                        My.Computer.FileSystem.WriteAllText("C:test.txt", "D,,," & DateString & " " & TimeString & Chr(13), True)
                    End Try
                End Try
            End Try
 
            ' Pause de 15 seconde entre chaque ping
            System.Threading.Thread.Sleep(1000)
        End While
    End Sub
 
End Module