当前位置: 网学 > 编程文档 > VB > 正文

用VB实现网页下载跟踪程序

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
列控件:
• TextBox  
• CommandButton  
• 两个Frame控件
• Label
• ProgressBar  
• RichTextBox  
• Internet Transfer Control  
如下图所示,在窗体上对以上控件进行布置。


编写应用程序代码
打开窗体的代码编辑器,在全局变量声明部分(General-Declarations)部分进行如下变量声明。
Private m_lngDocSize As Long
这个变量将用来存储我们将要下载的页面大小。
下面,我们将对命令按钮进行编码,在Command1_Click 事件中加入如下代码:
Private Sub Command1_Click()
''文件大小值复位
m_lngDocSize = 0
''清空rtbDocument的文本
rtbDocument.Text = ""
''复位进度条控件
ProgressBar1.Value = 0.001
''显示进度的标签内容设为空
lblProgressInfo.Caption = ""
''定义ITC控件使用的协议为HTTP协议
Inet1.Protocol = icHTTP
''调用Execute方法向Web服务器发送HTTP请求
If Len(txtURL.Text) > 0 Then
Inet1.Execute Trim$(txtURL.Text), "GET"
End If
End Sub
在命令按钮中,我们对各个控件的初值进行了复位,并向Web服务器发送了HTTP请求,该URL地址由用户键入到文本框中。在服务器开始响应时,我们需要处理ITC控件的StateChanged事件,从而获得内容长度报头,并获取随后传送过来的页面过程信息。
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim strText As String
Dim strBuffer As String
Dim sngProgerssValue As Single
On Error Resume Next
Select Case State
Case icResponseCompleted
Do ''从缓冲区读取数据
DoEvents
strBuffer = Inet1.GetChunk(512)
strText = strText & strBuffer
If m_lngDocSize > 0 Then
If Len(strBuffer) > 0 Then
''获得进度百分比值
sngProgerssValue = Int((Len(strText) / m_lngDocSize) * 100)
End If
''更新进度标签显示内容
lblProgressInfo.Caption = "Downloaded " & CStr(Len(strText)) & _
" bytes (" & CStr(sngProgerssValue) & "%)"
''用新值更新进度条控件
ProgressBar1.Value = sngProgerssValue
End If
Loop Until Len(strBuffer) = 0
''将读取的HTML页面内容置入RichTextBox控件
rtbDocument.Text = strText
Case icResponseReceived
If m_lngDocSize = 0 Then
''读取页面文件大小
If Len(Inet1.GetHeader("Content-Length")) > 0 Then
m_lngDocSize = CLng(Inet1.GetHeader("Content-Length"))
End If
End If
End Select
End Sub
一切OK!按F5测试这个新完成的应用程序,在文本框内键入任意存在的URL地址,然后点击读取按钮,呵呵,成功了!(如果服务器发送了内容长度报头,我们就能看到结果,如果不发送,这个程序可就罢工了。)
下载源文件  http://www.ccw.com.cn/htm/app/down/020329.zip

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号