Bonjour,
je voudrais ajouter des sites à bloquer au fichier hosts (un très grand nombre de site, plus de 85 000 minimum).
Je suis donc obligé de désactiver le service "Dnscache" car la navigation devient impossible aussi non.
Le problème n'est pas là, en effet lors de l'ajout de toutes ces lignes, j'ai un message d'erreur comme quoi le fichier hosts est en cours d'utilisation. C'est bien une erreur de mon code mais je ne vois pas d'où cela peut venir. J'espère que quelqu'un verra le problème qui est présent dans mon code.
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Private Sub ButtonPatcherHosts_Click(sender As Object, e As EventArgs) Handles ButtonPatcherHosts.Click, ButtonPatcherHosts.Click
        Dim ThreadPatcherHosts As New Threading.Thread(AddressOf PatcherHosts)
        ThreadPatcherHosts.Start()
    End Sub
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
If CheckBoxBloquerSitesDangereux.Checked Then
            Try
                Dim StreamReaderHosts As New StreamReader("C:\Windows\System32\Drivers\etc\hosts")
                Dim StreamReaderListe As New StreamReader("C:\Users\Clément\Documents\ListeDeSiteContenusDangereux.txt")
                Dim ligne As String
                Dim ligneExistante As String = StreamReaderHosts.ReadToEnd
                StreamReaderHosts.Close()
                Dim sw As StreamWriter = New StreamWriter("C:\Windows\System32\Drivers\etc\hosts", True)
                Do
                    ligne = StreamReaderListe.ReadLine
                    'on verifie si ligne n'est pas vide 
                    If ligne = String.Empty Then
                        sw.Close()
                        Exit Do
                    End If
                    If Not ligneExistante.Contains(ligne) Then
                        sw.WriteLine(ligne)
                    End If
                Loop Until ligne Is Nothing
                StreamReaderListe.Close()
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End If
 
        If CheckBoxBloquerSitesPublicitaires.Checked Then
            Try
                Dim StreamReaderHosts As New StreamReader("C:\Windows\System32\Drivers\etc\hosts")
                Dim StreamReaderListe As New StreamReader("C:\Users\Clément\Documents\ListeDeSiteContenusPublicitaires.txt")
                Dim ligne As String
                Dim ligneExistante As String = StreamReaderHosts.ReadToEnd
                StreamReaderHosts.Close()
                Dim sw As StreamWriter = New StreamWriter("C:\Windows\System32\Drivers\etc\hosts", True)
                Do
                    ligne = StreamReaderListe.ReadLine
                    'on verifie si ligne n'est pas vide 
                    If ligne = String.Empty Then
                        sw.Close()
                        Exit Do
                    End If
                    If Not ligneExistante.Contains(ligne) Then
                        sw.WriteLine(ligne)
                    End If
                Loop Until ligne Is Nothing
                StreamReaderListe.Close()
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End If
 
        If CheckBoxBloquerSitesCaracteresSexuels.Checked Then
            Try
                Dim StreamReaderHosts As New StreamReader("C:\Windows\System32\Drivers\etc\hosts")
                Dim StreamReaderListe As New StreamReader("C:\Users\Clément\Documents\ListeDeSiteCaracteresSexuels.txt")
                Dim ligne As String
                Dim ligneExistante As String = StreamReaderHosts.ReadToEnd
                StreamReaderHosts.Close()
                Dim sw As StreamWriter = New StreamWriter("C:\Windows\System32\Drivers\etc\hosts", True)
                Do
                    ligne = StreamReaderListe.ReadLine
                    'on verifie si ligne n'est pas vide 
                    If ligne = String.Empty Then
                        sw.Close()
                        Exit Do
                    End If
                    If Not ligneExistante.Contains(ligne) Then
                        sw.WriteLine(ligne)
                    End If
                Loop Until ligne Is Nothing
                StreamReaderListe.Close()
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End If
 
    End Sub