Bonjour,
je suis en train de développer un petit contrôle parental qui à pour but d'analyser le texte des pages web que l'utilisateur visite afin d'y détecter des mots interdits. J'ai mis des semaines avant d'arriver à faire fonctionner le proxy (issu de l'API FiddlerCore), analyser, corriger les bugs ... J'ai fini par y arriver. Cependant à quelque jours de lancer la version bêta de mon programme, je me rends compte (je ne sais pas comment c'est arrivé) qu'il y a un gros soucis, c'est que lorsque je lance le proxy Fiddler, les boutons de mon formulaire ne sont plus accessibles ! le programme répond bien mais plus aucun bouton ne marche.
Selon le créateur de Fiddler que j'ai contacté sur le forum officiel, j'utiliserais un événement ou autre qui bloque les "UI thread".
Voilà je ne comprends vraiment pas d'où ça peut venir car si j'essaye de créer mon programme avec juste la fonction d'analyse des pages, tout marche nickel.
Afin de maximiser les chances pour résoudre mon problème, je vous donne les liens du même sujet que j'ai crée sur le support Fiddler.

Merci d'avance pour votre aide !
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
Public Delegate Sub AsyncMethodCaller(sText As String)
    Private Sub ShutdownFiddlerApp()
        FiddlerApplication.Shutdown()
        MsgBox("Unloaded proxy")
        Threading.Thread.Sleep(1000)
    End Sub
 
    Private Sub FiddlerBeforeRequestHandler(ByVal tSession As Session)
        RichTextBox1.BeginInvoke(New AsyncMethodCaller(AddressOf AddText), tSession.fullUrl)
    End Sub
 
    Private Sub FiddlerBeforeResponseHandler(ByVal tSession As Session)
    End Sub
 
    Public Sub VerificationPage()
        Try
            Dim webClient As New System.Net.WebClient
            Dim result As String = webClient.DownloadString(url)
            Dim client As WebClient = New WebClient()
            Dim data As Stream = client.OpenRead(url)
            Dim reader As StreamReader = New StreamReader(data)
            Dim Page As String = reader.ReadToEnd
            ListeMots.AddRange(IO.File.ReadAllLines("C:\Users\" & System.Environment.UserName & "\Documents\ListeDeMots.txt"))
            Dim found As Boolean = False
            For Each s As String In ListeMots
                If Page.ToLower.Contains(" " & s.ToLower & " ") = True Or Page.ToLower.Contains("<h1>" & s.ToLower & "</h1>") = True Then
                    Dim myProcesses As Process() = Process.GetProcessesByName("firefox")
                    Dim myProcess As Process
                    For Each myProcess In myProcesses
                        myProcess.Kill()
                    Next myProcess
 
                    Dim myProcesses2 As Process() = Process.GetProcessesByName("iexplore")
                    Dim myProcess2 As Process
                    For Each myProcess2 In myProcesses2
                        myProcess2.Kill()
                    Next myProcess2
 
                    Dim myProcesses3 As Process() = Process.GetProcessesByName("chrome")
                    Dim myProcess3 As Process
                    For Each myProcess3 In myProcesses3
                        myProcess3.Kill()
                    Next myProcess3
 
                    Dim myProcesses4 As Process() = Process.GetProcessesByName("opera")
                    Dim myProcess4 As Process
                    For Each myProcess4 In myProcesses4
                        myProcess4.Kill()
                    Next myProcess4
                    RichTextBox1.Clear()
 
                    MsgBox("Un mot interdit a été détecté :" & s)
                End If
 
            Next
        Catch
        End Try
 
    End Sub
 
    Public Sub VerificationURL()
        Try
            Dim found As Boolean = False
            For Each s As String In ListeMots
                If url.ToLower.Contains("-" & s.ToLower & "-") = True Or url.ToLower.Contains("." & s.ToLower & ".") = True Or url.ToLower.Contains("." & s.ToLower & "-") = True Or url.ToLower.Contains("-" & s.ToLower & ".") = True Then
                    Dim myProcesses As Process() = Process.GetProcessesByName("firefox")
                    Dim myProcess As Process
                    For Each myProcess In myProcesses
                        myProcess.Kill()
                    Next myProcess
 
                    Dim myProcesses2 As Process() = Process.GetProcessesByName("iexplore")
                    Dim myProcess2 As Process
                    For Each myProcess2 In myProcesses2
                        myProcess2.Kill()
                    Next myProcess2
 
                    Dim myProcesses3 As Process() = Process.GetProcessesByName("chrome")
                    Dim myProcess3 As Process
                    For Each myProcess3 In myProcesses3
                        myProcess3.Kill()
                    Next myProcess3
 
                    Dim myProcesses4 As Process() = Process.GetProcessesByName("opera")
                    Dim myProcess4 As Process
                    For Each myProcess4 In myProcesses4
                        myProcess4.Kill()
                    Next myProcess4
                    RichTextBox1.Clear()
 
                    MsgBox("Un mot interdit a été détecté dans un lien :" & s)
 
                End If
            Next
        Catch
        End Try
    End Sub
 
    Private Sub AddText(sText As String)
        RichTextBox1.SelectAll()
        Dim nbrligne As Integer = RichTextBox1.GetLineFromCharIndex(RichTextBox1.SelectionLength())
        If nbrligne > 40 Then
            RichTextBox1.Clear()
        End If
        Dim url2 As Uri
        url2 = New Uri(sText)
        If url2.AbsolutePath.EndsWith(".js") = False And url2.AbsolutePath.EndsWith(".jpg") = False And url2.AbsolutePath.EndsWith(".gif") = False And url2.AbsolutePath.EndsWith(".png") = False And url2.AbsolutePath.EndsWith(".css") = False And url2.AbsolutePath.EndsWith(".ico") = False And url2.AbsolutePath.EndsWith(".jpeg") = False And RichTextBox1.Text.Contains(sText) = False And url2.ToString.Length < 200 = True Then
            RichTextBox1.AppendText(sText & vbCrLf)
            url = sText
            Dim ThreadVerificationPage As New Threading.Thread(AddressOf VerificationPage)
            ThreadVerificationPage.Start()
            Dim ThreadVerificationURL As New Threading.Thread(AddressOf VerificationURL)
            ThreadVerificationURL.Start()
        End If
 
    End Sub
 
    Protected Overrides Sub Finalize()
        MyBase.Finalize()
    End Sub
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' This call is required by the designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
        AddHandler FiddlerApplication.BeforeResponse, AddressOf FiddlerBeforeResponseHandler
        AddHandler FiddlerApplication.BeforeRequest, AddressOf FiddlerBeforeRequestHandler
        AddHandler Application.ApplicationExit, AddressOf ShutdownFiddlerApp
        Dim oFlags As FiddlerCoreStartupFlags = FiddlerCoreStartupFlags.Default
        FiddlerApplication.Startup(0, oFlags)
        MsgBox("Started proxy on port " & FiddlerApplication.oProxy.ListenPort)
 
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        ShutdownFiddlerApp()
    End Sub