Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

.NET 

whats wrong with my code?

so basically i wanted to declare a webbrowser in vb.net what i did was the following.

Dim browser as new webbrowser
Dim response as string = ""
browser.navigate("url")
waitforpageload() using this
response= browser.documenttext
richtextbox1.text = response

but its not giving the response what am i doing wrong?
(Sep 20, 2017 12:18 PM)Owl Wrote:  Does the waiter have any reference to your browser instance?

Not sure i did declared dim browser as new browser in the waiter
Get the documenttext On the OnDocumentCompleted event of the webbrowser.
Try something like this

Code
dim completed as boolean = false
Dim browser as new webbrowser
AddHandler browser.DocumentCompleted, AddressOf WebBrowser_DocumentCompleted
Dim response as string = ""
browser.navigate("url")

do until completed
     threading.thread.sleep(100)    
loop

response= browser.documenttext
richtextbox1.text = response

Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
     completed = true
End Sub
(Sep 20, 2017 11:40 PM)SIM-3327349 Wrote:  Try something like this

Code
dim completed as boolean = false
Dim browser as new webbrowser
AddHandler browser.DocumentCompleted, AddressOf WebBrowser_DocumentCompleted
Dim response as string = ""
browser.navigate("url")

do until completed
     threading.thread.sleep(100)    
loop

response= browser.documenttext
richtextbox1.text = response

Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
     completed = true
End Sub

Not working all it does is freeze the app because the threading sleep function
(Sep 21, 2017 06:27 AM)Mr. Money™ Wrote:  Not working all it does is freeze the app because the threading sleep function

This should help:

Code
dim trd as new threading.thread(sub()
        dim completed as boolean = false
        Dim browser as new webbrowser
        AddHandler browser.DocumentCompleted, AddressOf WebBrowser_DocumentCompleted
        Dim response as string = ""
        browser.navigate("url")
    
        do until completed
            threading.thread.sleep(100)    
        loop

        response= browser.documenttext
        richtextbox1.text = response
    end sub()
trd.isbackground = true
trd.start()
    
Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
     completed = true
End Sub
got it working with the following code.

Code
Public Class Form1
    Dim browser As New WebBrowser
    Dim response As String = ""
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        browser.Navigate("https://hackforums.net/showthread.php?tid=5721482&pid=55900379#pid55900379")
        WaitForPageLoad()
        response = browser.DocumentText
        RichTextBox1.Text = response
    End Sub
    Private Property pageready As Boolean = False

#Region "Page Loading Functions"
    Private Sub WaitForPageLoad()
        AddHandler browser.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
        While Not pageready
            Application.DoEvents()
        End While
        pageready = False
    End Sub

    Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
        If browser.ReadyState = WebBrowserReadyState.Complete Then
            pageready = True
            RemoveHandler browser.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
        End If
    End Sub

#End Region
End Class
(Sep 21, 2017 06:32 AM)Mr. Money™ Wrote:  got it working with the following code.

Code
Public Class Form1
    Dim browser As New WebBrowser
    Dim response As String = ""
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        browser.Navigate("https://hackforums.net/showthread.php?tid=5721482&pid=55900379#pid55900379")
        WaitForPageLoad()
        response = browser.DocumentText
        RichTextBox1.Text = response
    End Sub
    Private Property pageready As Boolean = False

#Region "Page Loading Functions"
    Private Sub WaitForPageLoad()
        AddHandler browser.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
        While Not pageready
            Application.DoEvents()
        End While
        pageready = False
    End Sub

    Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
        If browser.ReadyState = WebBrowserReadyState.Complete Then
            pageready = True
            RemoveHandler browser.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
        End If
    End Sub

#End Region
End Class

Good Job!
First things first. What's the objective here. The WebBrowser control is a heaping pile of garbage. If you can accomplish your ends without it, that should be priority numero uno.


Possibly Related Threads...
Thread / Author Replies Views Last Post
[Java] by CupOfJavaJan 31, 2019 04:52 PM 6 274 Jan 31, 2019 04:52 PM
Last Post: Khamul
[C] by SIM-3466371Jan 5, 2019 12:55 PM 3 163 Jan 5, 2019 12:55 PM
Last Post: HFDone
[C] by Hackerman_2018Nov 13, 2018 10:52 AM 7 163 Nov 13, 2018 10:52 AM
Last Post: HFDone