用VB5开发IE 


    随着网络用户的增加和Internet的普及与发展,浏览器已成为最受网络用户欢迎的软件之一。广大软件研制者特别是MIS开发者都希望把浏览器集成到自己的软件中来,使自己的软件能浏览WEB页面而功能更强大、更具特色。目前市场上流行的浏览器软件种类及版本很多。但要把它方便地集成到自己的软件中去,却受到以下几个方面的限制:浏览器带有各自的运行环境和配置文件;浏览器很大,集成到自己的软件中后运行效率低;开发者更想让浏览器具有自己的特色。

    因此,软件研制者都想开发自己的浏览器,而Visual Basic 5.0就提供了这种功能。笔者曾经用Visual Basic 5.0开发出简单的浏览器,编译出可执行文件后很小(只有33K),并成功地把它集成到其它软件中。下面给出制作步骤和程序清单,稍加修改就可做出自己喜欢的浏览器。

    1.打开一应用,打开一个Form(brower);

    2.在Brower里加入Toolbar控件toolbar1,增加常用的命令按钮(如back、next、stop、refresh、home、Search、open、exit等),同时加入Imagelist控件imagelist1,并加入自己喜欢的图形,然后和toolbar1中的命令按钮对应起来。

    3.加入定时器Timer丶imer1,并设置好;

    4.加入Label控件label1,Caption设为“Web地址”,加入Combobox控件combo1,加入Statusbar控件statusbar1.加入Webbrowser控件browser1;

    5.然后写入以下程序代码:

PublicStartingAddressAsString
DimflagAsBoolean
PrivateSubForm—Load()
OnErrorResumeNext
Me.Show
ToolBar1.Refresh
Open″d:\vb5\brow.ini″ForInputAs#2
′打开上次的WEBIP地址
Input#2,StartingAddress
Close#2
IfLen(StartingAddress)>0Then
combo1.Text=StartingAddress
combo1.AddItemStartingAddress
webbrowser1.NavigateStartingAddress
EndIf
EndSub
PrivateSubwebbrowser1—DownloadComplete()
OnErrorResumeNext
Me.Caption=webbrowser1.LocationName
EndSub
PrivateSubwebbrowser1—NavigateComplete(ByValURLAsString)
DimiAsInteger
DimbFoundAsBoolean
Me.Caption=webbrowser1.LocationName
Fori=0Tocombo1.ListCount-1
Ifcombo1.List(i)=webbrowser1.LocationURL
Then
bFound=True
ExitFor
EndIf
Nexti
flag=True
IfbFoundThen
combo1.RemoveItemi
EndIf
combo1.AddItemwebbrowser1.LocationURL,0
combo1.ListIndex=0
MousePointer=0
webbrowser1.Navigatecombo1.Text
StatusBar1.Panels(1).Text=″当前页面″+combo1.Text
flag=False
EndSub
PrivateSubcombo1—Click()
IfflagThenExitSub
Timer1.Enabled=True
MousePointer=11
StatusBar1.Panels(1).Text=″正在连接″+combo1.Text+″......″
webbrowser1.Navigatecombo1.Text
EndSub
PrivateSubcombo1—KeyPress(KeyAsciiAsInteger)
OnErrorResumeNext
IfKeyAscii=vbKeyReturnThen
combo1—Click
End If
End Sub
PrivateSubTimer1-Timer()
Ifwebbrowser1.Busy=FalseThen
Timer1.Enabled=False
Me.Caption=webbrowser1.LocationName
Else
Me.Caption=″Working...″
EndIf
EndSub
PrivateSubToolBar1-ButtonClick(ByValButtonAsButton)
OnErrorResumeNext
Timer1.Enabled=True
SelectCaseButton.Key
Case″exit″
UnloadMe
Case″Back″
webbrowser1.GoBack
Case″Forward″
webbrowser1.GoForward
Case″Refresh″
webbrowser1.Refresh
Case″Home″
webbrowser1.GoHome
Case″Search″
webbrowser1.GoSearch
Case″open″
CommonDialog1.ShowOpen
combo1.Text=CommonDialog1.filename
Case″Stop″
Timer1.Enabled=False
MousePointer=0
webbrowser1.Stop
Me.Caption=webbrowser1.LocationName
EndSelect
EndSub

    该程序经编译后即是一简单普通浏览器,可方便地集成到其他软件中去。


 
利用IE控件访问Internet
长沙 陈锐 


    这里向大家介绍一种利用IE3.X提供的控件编程访问Internet网页的方法。


IE控件

    如果机器中安装了IE3.X,在VB5.0的控件(Component)列表窗口中就会有一个名为Microsoft Internet Controls的控件,选取该控件,并将它加到Form中。

    该控件有以下几个重要的方法:

GoHome:装入IE设定的起始页。

    用法:object.GoHome

    Navigate:装入页面。

    用法:object.Navigateurl

    url为URL地址,如"http://www.microsoft.com"

    GoBack:返回上一个页面。

    用法:object.GoBack

    GoForward:进入下一个页面。

    用法:object.GoForward

    Stop:停止载入页面。

    用法:object.Stop

    该控件有以下重要事件:

    BeforNavigateEvent:在每次装入页面前调用,声明如下:

        PrivateSubobject_BeforeNavigate(ByVal URL As String,ByVal Flags As Long,ByVal TargetFrameName As String,PostData As Variant,ByVal Headers As String,Cancel As Boolean)

    其中的URL参数为将要装入的页面地址。

    StatusTextChangEvent:每次浏览器的操作状态改变时调用,声明如下:

    PrivateSubWebBrowser1_StatusTextChange(ByVal Text As String)

    Text:浏览器的操作状态。


访问方法

    下面介绍如何通过编程实现对WWW的访问。

    在Form中添加Microsoft Internet Control控件显示页面。

    在Form中添加4个CommandButton控件,Name属性分别为:GoButton、BackButton、ForwardButton、StopButton,用这4个CommandButton可以实现对浏览器的操作。

    在Form中添加一个TextBox控件,用来输入和显示当前的页面地址。

    在Form中添加Label控件,用来显示当前浏览器操作状态。

  程序如下:
Private Sub BackButton_Click()

  ' 返 回 上 一 个 页 面

  WebBrowser1.GoBack

End Sub


Private Sub Form_Load()

  ' 程 序 装 入 后 进 入IE 设 定 的 起 始 页

  WebBrowser1.GoHome


End Sub


Private Sub Form_Resize()

  ' 改 变 窗 口 大 小 后 同 时 改 变 控 件 的 大 小

  WebBrowser1.Width = Form1.ScaleWidth

  WebBrowser1.Height = Form1.ScaleHeight - 900

  Label1.Width = Form1.ScaleWidth

  Label1.Top = Form1.ScaleHeight - 300

End Sub


Private Sub ForwardButton_Click()

  ' 进 入 下 一 个 页 面

  WebBrowser1.GoForward

End Sub


Private Sub GOButton_Click()

  ' 浏 览 输 入 的 页 面

  WebBrowser1.Navigate (Text1.Text)

End Sub


Private Sub StopButton_Click()

  ' 停 止 浏 览

  WebBrowser1.Stop

End Sub


Private Sub Text1_KeyPress(KeyAscii As Integer)

  ' 浏 览 输 入 的 页 面

  If KeyAscii = 13 Then

    WebBrowser1.Navigate (Text1.Text)

  End If


End Sub


Private Sub WebBrowser1_BeforeNavigate

   (ByVal URL As String, ByVal Flags As Long,

   ByVal TargetFrameName As String, PostData As Variant,

   ByVal Headers As String, Cancel As Boolean)

  ' 将 当 前 显 示 的 页 面 的URL 地 址 显 示 在Text1 上

  Text1.Text = URL

End Sub


Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)

  'Label1 显 示 当 前 页 面 装 入 情 况

  Label1.Caption = Text

End Sub

    该程序在Win95、VB5.0下运行通过。  


 
如何启动拨号网路中的连线? 

拨号网路其实不是一个可执行文件, 所以一般常用的「Shell 可执行文件名」方法,在此并不适用。

要叫出拨号网路本身,方法如下:(藉助 explorer.exe 来开启拨号网路)

Shell "explorer ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{992CFFA0-F557-101A-88EC-00DD010CCC48}"
要启动拨号网路中的某一个连线, 其方法是:(假设连线名称为 Hinet) (藉助 rundll.exe 及 rnaui.dll 来启动连线窗口)

Shell "rundll rnaui.dll,RnaDial Hinet"
请注意在以上叙述中,「,RnaDial Hinet」这个部分不要插入额外的空白字符,大小写不要任意更改