Webbrowser control
Since I have been seen lately many people asking questions about the webbrowser control.
First of all the webbrowser control is not one of the controls that come by default in the control box. All you have to do to add it there is to press Ctrl + T key or (Project -> Components using the menu). Once in the components select window scroll down and check the box next to “Microsoft Internet Controls” and click ok.
Examples:
- Navigating to a site
- Popup browser using your own form
- Check if word/string is found on the page
- Making page on startup
- Regular Browser Functions
- Advanced browser functions
- Changing web browser’s Font Size
- Disabling functions appropriately (Back/Forward)
- Disabling functions appropriately (page setup/print preview/print setup)
- Removing Right Click Menu From the browser control
- Grab all links on the page
- Save Page
- Open Page
- Auto Submit
- Using A ProgressBar With The Webbrowser
- Setting a Control in a Webbrowser to focus
- Checkbox in a page, how to control it
- Custom Right Click Menu
Navigating to a site:
Navigating to a site...
VB Code:
WebBrowser1.Navigate "www.google.com"
Opening a popup window with your app
If the user go to a site where a new page needs to come in a new browser this code is made to open the target site in a new form.
VB Code:
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
Dim frm As Form1
Set frm = New Form1
Set ppDisp = frm.WebBrowser1.Object
frm.Show
End Sub
Check if word/string is found on the page
This code will let you check the page for a word or a sentence.
VB Code:
Private Sub Command1_Click()
Dim strfindword As String
strfindword = InputBox("What are you looking for?", "Find", "") ' what word to find?
If WebPageContains(strfindword) = True Then 'check if the word is in page
MsgBox "The webpage contains the text" 'string is in page
Else
MsgBox "The webpage doesn't contains the text" 'string is not in page
End If
End Sub
Private Function WebPageContains(ByVal s As String) As Boolean
Dim i As Long, EHTML
For i = 1 To WebBrowser1.Document.All.length
Set EHTML = _
WebBrowser1.Document.All.Item(i)
If Not (EHTML Is Nothing) Then
If InStr(1, EHTML.innerHTML, _
s, vbTextCompare) > 0 Then
WebPageContains = True
Exit Function
End If
End If
Next i
End Function
Private Sub Form_Load()
WebBrowser1.Navigate2 "www.msn.com"
End Sub
Making page on startup
This code show you how to make a page and show it on event.
VB Code:
Private Sub Form_Load()
WebBrowser1.Navigate "about:blank"
End Sub
Private Sub Command1_Click()
Dim HTML As String
'----------The HTML CODE GOES FROM HERE AND DOWN----------
HTML = "<HTML>" & _
"<TITLE>Page On Load</TITLE>" & _
"<BODY>" & _
"<FONT COLOR = BLUE>" & _
"This is a " & _
"<FONT SIZE = 5>" & _
"<B>" & _
"programmatically " & _
"</B>" & _
"</FONT SIZE>" & _
"made page" & _
"</FONT>" & _
"</BODY>" & _
"</HTML>"
'----------The HTML CODE GOES HERE AND ABOVE----------
WebBrowser1.Document.Write HTML
End Sub
Regular Browser Functions
This are the basic internet browser's functions.
VB Code:
Private Sub Command1_Click(Index As Integer)
On Error Resume Next ' just in case there is no page back or forward
'I showed how to disabel them if you scroll down more
Select Case Index
Case 0 'Go Back Button
WebBrowser1.GoBack 'Go Back one Page
Case 1 'Go Forward Button
WebBrowser1.GoForward 'Go Forward one Page
Case 2 'Stop Button
WebBrowser1.Stop 'stop page
Case 3 'Refresh Button
WebBrowser1.Refresh 'refresh page
Case 4 'Go Home Button
WebBrowser1.GoHome 'Go to home page
Case 5 'Search Button
WebBrowser1.GoSearch 'Search
End Select
End Sub
Advanced Browser Functions
This are the more complex browser functions like print and page Properties.
VB Code:
Private Sub Command1_Click() 'Print Button
WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT 'Show Print Window
End Sub
Private Sub Command2_Click() 'Print Preview Button
WebBrowser1.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT 'Show Print Preview Window
End Sub
Private Sub Command3_Click() 'Page Setup Button
WebBrowser1.ExecWB OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT 'Show Page Setup Window
End Sub
Private Sub Command4_Click() 'Page Properties Button
WebBrowser1.ExecWB OLECMDID_PROPERTIES, OLECMDEXECOPT_DODEFAULT 'Show Page Properties Window
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "www.google.com"
End Sub
Changing web browser’s Font Size
This Code shows you how to change the page font size, just like internet explorer View -> Text Size Menu
VB Code:
Private Sub Command1_Click() ' Smallest Button
On Error Resume Next
WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(0), vbNull
End Sub
Private Sub Command2_Click() 'Small Button
On Error Resume Next
WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(1), vbNull
End Sub
Private Sub Command3_Click() 'Medium Button
On Error Resume Next
WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(2), vbNull
End Sub
Private Sub Command4_Click() 'Large Button
On Error Resume Next
WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(3), vbNull
End Sub
Private Sub Command5_Click() 'Largest Button
On Error Resume Next
WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(4), vbNull
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate2 "www.google.com"
End Sub
Disabling functions appropriately (Back/Forward)
This code shows you how to appropriately disable the back and forward button.
VB Code:
Private Sub Command1_Click() 'Go Back Button
WebBrowser1.GoBack 'Go Back
End Sub
Private Sub Command2_Click() 'Go Forward Button
WebBrowser1.GoForward 'Go Forward
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "www.google.com"
End Sub
Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)
Select Case Command
Case 1 'Forward
Command2.Enabled = Enable
Case 2 'Back
Command1.Enabled = Enable
End Select
End Sub
Disabling functions appropriately (page setup/print preview/print setup)
This code shows you how to appropriately disable the page setup or print setup.
VB Code:
Private Sub Command1_Click() 'Print Button
WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT 'Show Print Window
End Sub
Private Sub Command2_Click() 'Print Preview Button
WebBrowser1.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT 'Show Print Preview Window
End Sub
Private Sub Command3_Click() 'Page Setup Button
WebBrowser1.ExecWB OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT 'Show Page Setup Window
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "www.google.com"
End Sub
Public Function Enable_or_Disable()
If WebBrowser1.QueryStatusWB(OLECMDID_PRINT) = 0 Then
Command1.Enabled = False
Else
Command1.Enabled = True
End If
If WebBrowser1.QueryStatusWB(OLECMDID_PRINTPREVIEW) = 0 Then
Command2.Enabled = False
Else
Command2.Enabled = True
End If
If WebBrowser1.QueryStatusWB(OLECMDID_PAGESETUP) = 0 Then
Command3.Enabled = False
Else
Command3.Enabled = True
End If
End Function
Private Sub WebBrowser1_BeforeNavigate2 _
(ByVal pDisp As Object, _
URL As Variant, _
Flags As Variant, _
TargetFrameName As Variant, _
PostData As Variant, _
Headers As Variant, _
Cancel As Boolean)
Enable_or_Disable
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Enable_or_Disable
End Sub
Removing Right Click Menu From the browser control
So you need to remove the right click menu from the control, right? well there are more then two ways one of them, which i knew but i won't bother telling is using lots of hooking, waist of thime since all you have to do is download a simple helper file.
First you need to go to http://support.microsoft.com/kb/q183235/ and download the WBCustomizer.dll. once done go to the"Project Menu" and click on "Refrences" Click on browse and add the 'WBCustomizer.dll' to you app. once done just add this simple code.
VB Code:
Option Explicit
Dim CustomWB As WBCustomizer 'Deceler the CustomWB
Private Sub Form_Load()
Set CustomWB = New WBCustomizer
With CustomWB
.EnableContextMenus = False 'Disable The Menu
.EnableAllAccelerators = True
Set .WebBrowser = WebBrowser1
End With
WebBrowser1.Navigate "www.google.com"
CustomWB.EnableContextMenus = False
End Sub