IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Bouttons indisponibles suite au lancement du proxy FiddlerCore


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut Bouttons indisponibles suite au lancement du proxy FiddlerCore
    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
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  2. #2
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Personne pour m'aider ? :'(
    Je précise que je peux vous envoyer le projet complet si vous le souhaitez.
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    les boutons de mon formulaire ne sont plus accessibles ! le programme répond bien mais plus aucun bouton ne marche.
    Ca veut dire quoi qu'ils ne sont "plus accessibles" ? Ils sont désactivés ? Ou alors il ne se passe rien quand tu cliques dessus ?

    Tu as essayé de déboguer le programme en pas à pas ?

    Envoie le projet zippé, j'y jetterai un coup d'oeil si j'ai le temps

  4. #4
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Bonjour,
    lorsque je clique sur les boutons, il ne se passe rien. J'ai trouvé le problème mais pas la solution.

    Si j'appelle le proxy avec ce code là, les boutons ne sont plus accessibles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Private Sub ButtonStart_Click(sender As Object, e As EventArgs) Handles ButtonStart.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
    En revanche, si j'appelle le proxy avec ce code (le code d'origine) tout fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Public Sub New()
            ' 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
    J'ai fais un projet qui met en évidence le problème, voici le lien : https://dl.dropboxusercontent.com/u/...dlerCoreVB.rar
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    J'ai pas encore regardé le projet, mais pourquoi tu as un appel à InitializeComponent dans ButtonStart_Click ? Il n'a rien à faire là... Cet appel doit se trouver dans le constructeur (Sub New) et pas ailleurs.

  6. #6
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Je ne sais pas, je l'ai gardé quand j'ai modifié le code original. Si je mets le New, il se lance au démarrage de mon application et je ne veux pas. Il faut que le proxy se lance lors du clique sur le bouton.
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par CLeBeR Voir le message
    Je ne sais pas, je l'ai gardé quand j'ai modifié le code original. Si je mets le New, il se lance au démarrage de mon application et je ne veux pas. Il faut que le proxy se lance lors du clique sur le bouton.
    Je ne vois pas le problème ; laisse le InitializeComponent dans le New, et le reste dans ButtonStart_Click.

    InitializeComponent est une méthode générée par le designer, qui doit se trouver dans New pour que ça fonctionne correctement. Ce n'est pas ça qui démarre le proxy.

  8. #8
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Effectivement ça fonctionne si je laisse le New ! Merci beaucoup tomlev !
    Voici donc le code !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Public Sub New()
            InitializeComponent()
        End Sub
     
        Private Sub ButtonStart_Click(sender As Object, e As EventArgs) Handles ButtonStart.Click
     
                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
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] VM sur AZURE indisponible suite à un redémarrage via PUTTY
    Par abdersee dans le forum Microsoft Azure
    Réponses: 0
    Dernier message: 26/01/2015, 10h46
  2. Réponses: 4
    Dernier message: 26/04/2011, 23h29
  3. erreurs suite au lancement de ./configure
    Par condor_01 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 07/09/2007, 11h42
  4. lancement macro suite à changement cellule
    Par dvguy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/12/2006, 08h45
  5. Réponses: 4
    Dernier message: 28/07/2006, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo