Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VB.NET]WebBrowser.Url().ToString()

Sujet résolu
Anonyme
    23 octobre 2014 à 14:47:52

    Bonjour à tous, j'ai fait le TP du cours sur le Visual Basic .net et maintenant je souhaite approfondir. Alors à chque clique sur le bouton home que j'ai rajouté et qui permet un retour sur www.google.fr/gws_rd=ssl, je récupère l'adresse de la page ainsi :

    'on entre le tout dans l'historique :
            'Écrit dans le fichier
            If Me.WB_NAVIGATEUR.Url().ToString() <> "" Then
                histo_mod = Me.WB_NAVIGATEUR.Url().ToString()
                File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
            End If

    Mais à chaque fois j'ai une référence Null Exception qui n'a pas pu êre gérée . . . Que faire ? Merci de votre aide !

    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2014 à 15:01:22

      Url est une propriété et non une méthode.

      webBrowser1.Url.ToString()
      • Partager sur Facebook
      • Partager sur Twitter
        23 octobre 2014 à 15:01:32

        #post en double

        -
        Edité par Blue Sh4rk 23 octobre 2014 à 15:02:03

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          23 octobre 2014 à 15:03:02

          Oui sauf que si je fais webBrowser1.Url.ToString(), je n'obtiens rien !

          De plus, l'erreur est toujours là

          -
          Edité par Anonyme 23 octobre 2014 à 15:05:11

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            23 octobre 2014 à 15:10:29

            mon code :

            Public Class Form1
            
                'ma "variable" d'historique :
                Public historique As String = "historique.txt"
                Public hkey_ie As String = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"
                Public histo_mod As String = ""
            
                Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
                    'si on est or ligne :
                    If Me.WB_NAVIGATEUR.IsOffline = True Then
                        Form5.Show()
                    End If
            
                    'page au démarrage à lire dans page-home: (fichier)
                    'Les deux lignes suivantes peuvent être remplacées par Me.WB_NAVIGATEUR.Navigate("http://www.google.fr")
                    Me.TXT_ADRESSE.Text = "http://www.google.fr"
                    'Simule un clic en passant comme argument nothing (null)
                    Me.BT_ADRESSE_Click(Nothing, Nothing)
            
                    'la couleur de fond est sauvegardée :
                    If File.Exists("color.ini") Then
                        Dim couleur_select As String = File.ReadAllText("color.ini")
                        Select Case couleur_select
                            Case "0"
                                Me.BackColor = Color.SteelBlue
                            Case "1"
                                Me.BackColor = Color.IndianRed
                            Case "2"
                                Me.BackColor = Color.PaleGoldenrod
                            Case "3"
                                Me.BackColor = Color.ForestGreen
                            Case "4"
                                Me.BackColor = Color.MediumPurple
                            Case "5"
                                Me.BackColor = Color.Orange
                            Case Else
                                Me.BackColor = Color.Gray
                        End Select
                    Else
                        File.WriteAllText("color.ini", "6")
                    End If
            
                    'Au démarrage, pas de possibilité de « Précédent »,  « Suivant », « Stop »
                    Me.BT_SUIVANT.Enabled = False
                    Me.BT_PRECEDENT.Enabled = False
                    Me.BT_STOP.Enabled = False
            
                    'on écrit la page dans la barre d'adresse
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
            
                    'modification du registre pour la compatibilité !
                    Dim registrybrowser As RegistryKey = Registry.LocalMachine.OpenSubKey(hkey_ie, True, Security.AccessControl.RegistryRights.FullControl)
                    registrybrowser.SetValue("NevoWeb.vshost.exe", 11000, RegistryValueKind.DWord)
                    registrybrowser.SetValue("NevoWeb.exe", 11000, RegistryValueKind.DWord)
                End Sub
            
            #Region "Evènements du WBroser"
                'À chaque changement d'état, on met à jour les boutons
                Sub WB_NAVIGATEUR_CanGoForwardChanged(ByVal sender As Object, ByVal e As EventArgs)
                    If Me.WB_NAVIGATEUR.CanGoForward Then
                        Me.BT_SUIVANT.Enabled = True
                    Else
                        Me.BT_SUIVANT.Enabled = False
                    End If
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                End Sub
            
                'À chaque changement d'état, on met à jour les boutons
                Sub WB_NAVIGATEUR_CanGoBackChanged(ByVal sender As Object, ByVal e As EventArgs)
                    If Me.WB_NAVIGATEUR.CanGoBack Then
                        Me.BT_PRECEDENT.Enabled = True
                    Else
                        Me.BT_PRECEDENT.Enabled = False
                    End If
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                End Sub
            
                'Au changement de statut de la page
                Sub WB_NAVIGATEUR_StatutTextChanged(ByVal sender As Object, ByVal e As EventArgs)
                    'On met le statut à jour
                    Me.LBL_STATUT.Text = Me.WB_NAVIGATEUR.StatusText
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                End Sub
            
            
                'Lorsque le chargement est fini
                Private Sub WB_NAVIGATEUR_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
                    'on désactive le bouton « Stop »
                    Me.BT_STOP.Enabled = False
                    'on récupère l'adresse de la page et on l'affiche
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                End Sub
            
                'Lorsque le chargement commence
                Private Sub WB_NAVIGATEUR_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs)
                    'On active le bouton « Stop »
                    Me.BT_STOP.Enabled = True
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    File.WriteAllText("historique.txt", Date.Now() & ":" & Me.WB_NAVIGATEUR.Url().ToString)
                    'on récupère l'adresse de la page et on l'affiche
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                End Sub
            #End Region
            
            #Region "Boutons de navigation"
                Private Sub BT_ADRESSE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_ADRESSE.Click
                    'S'il existe une adresse, on y va
                    If Not Me.TXT_ADRESSE Is Nothing Then
                        Me.WB_NAVIGATEUR.Navigate(TXT_ADRESSE.Text)
                        Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                        'on entre le tout dans l'historique :
                        'Écrit dans le fichier
                        histo_mod = Me.WB_NAVIGATEUR.Url().ToString
                        File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                    End If
                End Sub
            
                Private Sub BT_PRECEDENT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_PRECEDENT.Click
                    'Va à la page précédente
                    Me.WB_NAVIGATEUR.GoBack()
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    histo_mod = Me.WB_NAVIGATEUR.Url().ToString
                    File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                End Sub
            
                Private Sub BT_SUIVANT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_SUIVANT.Click
                    'Va à la page suivante
                    Me.WB_NAVIGATEUR.GoForward()
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    histo_mod = Me.WB_NAVIGATEUR.Url().ToString
                    File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                End Sub
            
                Private Sub BT_STOP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_STOP.Click
                    'Désactive le bouton « Stop » et arrête le chargement du navigateur
                    Me.BT_STOP.Enabled = False
                    Me.Close()
                End Sub
            
                Private Sub BT_REFRESH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_REFRESH.Click
                    'Rafraîchit le navigateur
                    Me.WB_NAVIGATEUR.Refresh()
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    histo_mod = Me.WB_NAVIGATEUR.Url().ToString
                    File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                End Sub
            
                Private Sub PrécédentToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrécédentToolStripMenuItem.Click
                    Me.WB_NAVIGATEUR.GoBack()
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    histo_mod = Me.WB_NAVIGATEUR.Url().ToString
                    File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                End Sub
            
                Private Sub SuivantToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SuivantToolStripMenuItem.Click
                    Me.WB_NAVIGATEUR.GoForward()
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    histo_mod = Me.WB_NAVIGATEUR.Url().ToString
                    File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                End Sub
            
                Private Sub StopToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StopToolStripMenuItem.Click
                    Me.BT_STOP.Enabled = False
                    Me.Close()
                End Sub
            
                Private Sub RaffraîchirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RaffraîchirToolStripMenuItem.Click
                    Me.WB_NAVIGATEUR.Refresh()
                    Me.TXT_ADRESSE.Text = Me.WB_NAVIGATEUR.Url().ToString
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    histo_mod = Me.WB_NAVIGATEUR.Url().ToString
                    File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                End Sub
            
                Private Sub BT_HOME_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_HOME.Click
                    'on lit la page d'accueil
                    If File.Exists("acc.txt") Then
                        Me.WB_NAVIGATEUR.Navigate(File.ReadAllText("acc.txt"))
                        Me.TXT_ADRESSE.Text = File.ReadAllText("acc.txt")
                    Else
                        Form4.Show()
                    End If
                    'on entre le tout dans l'historique :
                    'Écrit dans le fichier
                    If Me.WB_NAVIGATEUR.Url.ToString() <> "" Then
                        histo_mod = Me.WB_NAVIGATEUR.Url.ToString()
                        File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)
                    End If
                End Sub
            
                Private Sub BT_MARQUER_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_MARQUER.Click
                    Form2.Show()
                    Dim nom_donne, url_donne As String
                    nom_donne = Form2.ajout_fav
                    url_donne = Form2.ajout_url
                End Sub
            
                Private Sub DéfinirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DéfinirToolStripMenuItem.Click
                    Form4.Show()
                End Sub
            
                Private Sub VérouillerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VérouillerToolStripMenuItem.Click
                    'on appel une fenetre qui va demander un mot de passe pour bloquer le navigateur
                    Dim mot_de_passe As String = InputBox("Le navigateur va être vérouillé, entrez un mot de passe :", "Vérouillage", "Mot de passe")
                    Dim verification As String = InputBox("Navigateur vérouillé !", "Vérouillé", "Mot de passe ?")
                    While verification <> mot_de_passe
                        verification = InputBox("Navigateur vérouillé !", "Vérouillé", "Mot de passe ?")
                    End While
                End Sub
            
            #End Region
            End Class

            Il est un long je sais. Et encore j'ai pas tout mis :-°. Mais je ne comprend pas pourquoi .Url().ToString() marche bien seul, pas dans BT_HOME_Click donc, et pourquoi .Url.ToString() marche pas . . .

            • Partager sur Facebook
            • Partager sur Twitter
              23 octobre 2014 à 15:16:30

              Et le code lorsaue tu clique sur le bouton accueil ?

              Parce que de mon coté, ton bout de code fonctionne...

              EDIT: je n'avais pas vu ton edit, je regarde

              -
              Edité par Blue Sh4rk 23 octobre 2014 à 15:17:35

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                23 octobre 2014 à 15:58:06

                En fait, lorsque tu essais d'acceder a la propriété Url, au moment du cliaque la page n'est pas encore chargée. Du coup Url est encore vide. Met le deuxième partie de ta méthode dans l'événement DocumentCompleted du webbrowser.

                If Me.WB_NAVIGATEUR.Url.ToString() <> "" Then           histo_mod = Me.WB_NAVIGATEUR.Url.ToString()            File.WriteAllText("historique.txt", Date.Now() & ":" & histo_mod)        End If

                Par contre, change ton séparateur dans le fichier car la date place le caractère ':' dans son format.

                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme

                [VB.NET]WebBrowser.Url().ToString()

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown