我们将开发具有如下功能的应用程序:使用两个文本框和一个Internet Transfer控件。可在“地址”文本框中输入FTP服务器的URL(Uniform Resource Locator),然后从内容文本框中选择一个文件或目录。如果选择目录,则应用程序就会显示该目录。如果选择文件,则浏览器会将文件存于Windows Temp目录中。当用户按回车键时,“地址”文本框会通过设置Internet Transfer控件的URL属性并调用Execute方法来执行请求。当请求一个特定文件时,OpenURL方法实现相同的动作。然而,当你使用OpenURL方法返回目录的内容时,会返回指明目录内容的HTML源代码。
2)在File菜单中单击New Project,以便打开New Project对话框,然后双击“普通exe”图标,即建立一个新项目,并进入开发环境。
3)在窗体上添加一个Label控件、一个TextBox和一个ListBox(如图4.1所示)。
图4.1
4)添加如下代码:
Private Sub Text1_Click(KeyAscii As Integer)
If KeyAscii=Asc(vbCr) Then
KeyAscii=0
Text1.SelStart=0
Text1.SelLength=Len(Text1)
On Error goTo errOpenURL
InetBrowse.URL=Text1.Text
InetBrowse.Execute, "Dir"
Caption=inetBrowse.URL
End If
Exit Sub
ErrOpenURL:
Select Case Err.Number
Case icBadUrl
MsgBox"地址错误,请重新出入!"
Case icConnectFailed,icConnectionAborted,icCannotConnect
MsgBox"无法连入网络!"
Case icInetTimeout
MsgBox"连接超时!"
Case icExecuting
InetBrowse.Cancel
If inetBrowse.StillExecuting Then
Caption="不能取消请求!"
Else
Resume
End If
End Select
End Sub
当你提交一个请求时,设置错误陷阱很重要,尤其是icExecuting错误。Internet Transfer控件采用异步方式处理所有请求。然而,在同一时间仅能处理一个请求。如果你取消正在进行的请求,那么在重新开始前一定要检查StillExecuting属性。有些请求不能被取消,并且简单地使用Resume语句会导致死循环。
Private Sub List1_DblClick)
If List1.SelLength Then
If Right(List1.SelText1,1)="/" Then
Text1=Text1 & "/" Left(Text1.SelText,Text1.SelLength-1)
On Error goTo errBRowse
MsDir=Right(Text1.Len(Text1)-Len(inetBrowse.URL)
InetBrowse.Execute,"Dir"&msDir&"/*"
Else
MsDir=Right(Text1.Len(Text1)-Len(inetBrowse.URL))&"/"&""&msTempDir&List1.SelText
End If
End If
Exit Sub
ErrBrowse:
If Err=icExecuting Then
inetBrowse.Cancel
If inetBrowse.StillExecuting Then
MsgBox"不能取消请求!"
Else
Resume &