UPDATED ON 18/6/2006
In this thread i'm going to talk about all the things that you might need in building an internet web browser using visualbasic component.
1- Adding components:
Go to "Project" on the top menu, and choose "Components" or click CTRL-T, then check "Microsoft html object library" and "Microsoft internet controls" and "Microsoft Windows common Controls 5.0".
You will see that new objects are appearing in the left box of your menu, now choose the webbrowser icon which looks like an earth and add it to your form, and make its size as you want, (its name is WebBrowser1 in this tutorial)
Also click on the "Progress bar" component and add it to your form.
2- Adding buttons and objects:
Now add the "6" essential command buttons to your form, and name them as the following: "Back","Forward","Stop","Refresh","Home" and "GO", Now add 1 combo box which the user will enter the web address on it.
3- Coding your application:
First click on the "GO" button and write this code inside it:
VB Code:
WebBrowser1.Navigate Combo1
Now We will code the other buttons as the following:
Back button:
VB Code:
On Error Resume Next
WebBrowser1.GoBack
Forward button:
VB Code:
On Error Resume Next
WebBrowser1.GoForward
Stop button:
VB Code:
On Error Resume Next
WebBrowser1.Stop
Refresh button:
Home button:
NOW YOU CAN TRY USING YOUR NEW WEB BROWSER.
4- Advanced codes:
You can add the following codes to your application to make it work better, Just place these codes anywhere in your coding window.
* Add a progress bar
VB Code:
'This to make the progress bar work and to show a status message, and an image.
Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
On Error Resume Next
If Progress = -1 Then ProgressBar1.Value = 100 'the name of the progress bar is "ProgressBar1".
Label1.Caption = "Done"
ProgressBar1.Visible = False 'This makes the progress bar disappear after the page is loaded.
Image1.Visible = True
If Progress > 0 And ProgressMax > 0 Then
ProgressBar1.Visible = True
Image1.Visible = False
ProgressBar1.Value = Progress * 100 / ProgressMax
Label1.Caption = Int(Progress * 100 / ProgressMax) & "%"
End If
Exit Sub
End Sub
But here you will need to add an label which is called "Label1" and also an small image such as a smile or earth or anything you want and the name is "image1"
* Open in new window
VB Code:
'This to open a new window with our browser.
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
This to open the new window with your browser.
* History and current visited site.
VB Code:
'This keeps the visited sites history and also changes the title of the browser as the page title.
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
Dim i As Integer
Dim bFound As Boolean
Me.Caption = WebBrowser1.LocationName
For i = 0 To Combo1.ListCount - 1
If Combo1.List(i) = WebBrowser1.LocationURL Then
bFound = True
Exit For
End If
Next i
mbDontNavigateNow = True
If bFound Then
Combo1.RemoveItem i
End If
Combo1.AddItem WebBrowser1.LocationURL, 0
Combo1.ListIndex = 0
mbDontNavigateNow = False
End Sub
5- More coding:
You can add more buttons to your browser as those:
* Find if a word is in the page (taken from a tutorial on this forum).
VB Code:
'This to tell you if a word is in the page, Here we call the WebPageContains function.
Private Sub Command7_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
'This is the finding function.
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
* Page properties
VB Code:
WebBrowser1.ExecWB OLECMDID_PROPERTIES, OLECMDEXECOPT_DODEFAULT
This will run the page properties.
* Print a page
VB Code:
WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT
* Save a page
VB Code:
WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT
* Delete cookies from your computer
VB Code:
'This code is used to empty the cookies from the user's computer / We call function from here.
Private Declare Function GetUserName _
Lib "advapi32.dll" Alias "GetUserNameW" ( _
ByVal lpBuffer As Long, _
ByRef nSize As Long) As Long
Private Declare Function SHGetSpecialFolderPath _
Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" ( _
ByVal hwnd As Long, _
ByVal pszPath As String, _
ByVal csidl As Long, _
ByVal fCreate As Long) As Long
Private Const CSIDL_COOKIES As Long = &H21
'This calls the function that deletes the cookies.
Public Sub Command1_Click()
Dim sPath As String
sPath = Space(260)
Call SHGetSpecialFolderPath(0, sPath, CSIDL_COOKIES, False)
sPath = Left$(sPath, InStr(sPath, vbNullChar) - 1) & "\*.txt*"
On Error Resume Next
Kill sPath
End Sub
* Show webpage's source code:
VB Code:
Private Sub Form_Load()
Text1.Text = Form1.browser.Document.documentElement.innerHTML
End Sub
6- Important codes: New!
* Popups Blocker
VB Code:
Private Function IsPopupWindow() As Boolean
On Error Resume Next
If WebBrowser1.Document.activeElement.tagName = "BODY" Or WebBrowser1.Document.activeElement.tagName = "IFRAME" Then
IsPopupWindow = True
Else
IsPopupWindow = False
End If
End Function
Private Sub webbrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
Dim frm As Form1
Cancel = IsPopupWindow
If Cancel = False Then
Set frm = New Form1
Set ppDisp = frm.WebBrowser1.object
frm.Show
End If
End Sub
This will block all the popups, but in the same time it will open links in a new window as usual.
* JavaScripts handeling
VB Code:
WebBrowser1.Silent = True
This will not show any errors from pages while you are using your web browser, put it in the form load event.
* The size of the browser and the scrollbars code
VB Code:
Private Sub Form_Resize()
On Error Resume Next
WebBrowser1.Width = Me.ScaleWidth
WebBrowser1.Height = Me.ScaleHeight - 1680
End Sub
This code will make your webbrowser fit with the overall form structure, and also will make the scrollbars compitable with the form.
Now you got a great web browser with many functions 
Need icons for your application? just do a fast forum search and you will find a great sites for icons or images.