Hack Forums
[.NET] whats wrong with my code? - Printable Version

+- Hack Forums (https://hackforums.net)
+-- Forum: Tech (https://hackforums.net/forumdisplay.php?fid=444)
+--- Forum: Coding (https://hackforums.net/forumdisplay.php?fid=151)
+---- Forum: Software Development (https://hackforums.net/forumdisplay.php?fid=118)
+---- Thread: [.NET] whats wrong with my code? (/showthread.php?tid=5721482)



whats wrong with my code? - Mr. Money™ - Sep 20, 2017

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?


* - Mr. Money™ - Sep 20, 2017

(Sep 20, 2017 12:18 PM)Orka Wrote:  Does the waiter have any reference to your browser instance?

Not sure i did declared dim browser as new browser in the waiter


* - Rhez - Sep 20, 2017

Get the documenttext On the OnDocumentCompleted event of the webbrowser.


* - SIM-3327349 - Sep 20, 2017

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



* - Mr. Money™ - Sep 21, 2017

(Sep 20, 2017 11:40 PM)_Grow_ 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


* - SIM-3327349 - Sep 21, 2017

(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



* - Mr. Money™ - Sep 21, 2017

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



* - SIM-3327349 - Sep 21, 2017

(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!


* - Dianab0lical. - Sep 21, 2017

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.