Sep 20, 2017 10:22 AM
(This post was last modified: Sep 20, 2017 10:27 AM by Mr. Money™.)
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.
DO NOT DEAL WITH THIS MEMBER
Sep 20, 2017 11:40 PM
(This post was last modified: Sep 20, 2017 11:42 PM by SIM-3327349.)
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
DO NOT DEAL WITH THIS MEMBER
(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
DO NOT DEAL WITH THIS MEMBER
(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.
|