Private m_lngDocSize As Long'该变量用于存储Web页面文件大小Private Const strURL = "http://vip.6to23.com/NowCan1/project/HumanManage.exe" Private Const FileName = "HumanManage.exe"Private Sub Command1_Click()'文件大小值复位 m_lngDocSize = 0'复位进度条控件 ProgressBar1.Value = 0.001'显示进度的标签内容设为空 lblProgressInfo.Caption = ""'定义ITC控件使用的协议为HTTP协议 Inet1.Protocol = icHTTP'调用Execute方法向Web服务器发送HTTP请求 Inet1.Execute Trim$(strURL), "GET" lblProgressInfo.Caption = "请等待..." End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Shell App.Path & "\" & FileName, vbNormalFocus End SubPrivate Sub Inet1_StateChanged(ByVal State As Integer)Dim binBuffer() As Byte Dim sngProgerssValue As Single Dim iBlock As LongOn Error Resume Next iBlock = 0Select Case State Case icResponseCompleted '打开文件供写入 Open App.Path & "\" & FileName For Binary Access Write As #1 Do '从缓冲区读取数据 DoEvents binBuffer = Inet1.GetChunk(512, icByteArray) 'strText = strText & strBuffer iBlock = iBlock + 1 If m_lngDocSize > 0 Then '获得进度百分比值 sngProgerssValue = Int((iBlock * 512 / m_lngDocSize) * 100) '更新进度标签显示内容 lblProgressInfo.Caption = "已下载 " & CStr(iBlock * 512) & " 字节 (" & CStr(sngProgerssValue) & "%)" '用新值更新进度条控件 ProgressBar1.Value = sngProgerssValue '写入文件 Put #1, , binBuffer() End If Loop Until iBlock * 512 >= m_lngDocSize '关闭文件 Close #1 MsgBox "升级完成", vbOKOnly Or vbInformation, "在线升级" Case icResponseReceived If m_lngDocSize = 0 Then '读取页面文件大小 If Len(Inet1.GetHeader("Content-Length")) > 0 Then m_lngDocSize = CLng(Inet1.GetHeader("Content-Length")) If (m_lngDocSize = 0) Then MsgBox "读取远程数据出错", vbOKOnly Or vbExclamation, "在线升级" End If Else MsgBox "ERROR!", vbOKOnly Or vbExclamation, "在线升级" End If End If Case icError MsgBox "与主机通信出错", vbOKOnly Or vbExclamation, "在线升级" Case icResolvingHost lblProgressInfo.Caption = "正在查找主机..." Case icHostResolved lblProgressInfo.Caption = "已经找到主机" Case icConnecting lblProgressInfo.Caption = "正在联系主机" Case icConnected lblProgressInfo.Caption = "已经连接到主机" Case icRequesting lblProgressInfo.Caption = "正在发送请求..." Case icRequestSent lblProgressInfo.Caption = "成功发送请求" Case icReceivingResponse lblProgressInfo.Caption = "正在接收回应..." Case icDisconnecting lblProgressInfo.Caption = "正在断开连接..." Case icDisconnected lblProgressInfo.Caption = "已经断开连接"End SelectEnd Sub
Private Const FileName = "HumanManage.exe"Private Sub Command1_Click()'文件大小值复位
m_lngDocSize = 0'复位进度条控件
ProgressBar1.Value = 0.001'显示进度的标签内容设为空
lblProgressInfo.Caption = ""'定义ITC控件使用的协议为HTTP协议
Inet1.Protocol = icHTTP'调用Execute方法向Web服务器发送HTTP请求
Inet1.Execute Trim$(strURL), "GET"
lblProgressInfo.Caption = "请等待..."
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Shell App.Path & "\" & FileName, vbNormalFocus
End SubPrivate Sub Inet1_StateChanged(ByVal State As Integer)Dim binBuffer() As Byte
Dim sngProgerssValue As Single
Dim iBlock As LongOn Error Resume Next
iBlock = 0Select Case State Case icResponseCompleted
'打开文件供写入
Open App.Path & "\" & FileName For Binary Access Write As #1 Do '从缓冲区读取数据
DoEvents binBuffer = Inet1.GetChunk(512, icByteArray)
'strText = strText & strBuffer
iBlock = iBlock + 1
If m_lngDocSize > 0 Then
'获得进度百分比值
sngProgerssValue = Int((iBlock * 512 / m_lngDocSize) * 100)
'更新进度标签显示内容
lblProgressInfo.Caption = "已下载 " & CStr(iBlock * 512) & " 字节 (" & CStr(sngProgerssValue) & "%)"
'用新值更新进度条控件
ProgressBar1.Value = sngProgerssValue
'写入文件
Put #1, , binBuffer()
End If Loop Until iBlock * 512 >= m_lngDocSize
'关闭文件
Close #1
MsgBox "升级完成", vbOKOnly Or vbInformation, "在线升级" Case icResponseReceived If m_lngDocSize = 0 Then '读取页面文件大小
If Len(Inet1.GetHeader("Content-Length")) > 0 Then
m_lngDocSize = CLng(Inet1.GetHeader("Content-Length"))
If (m_lngDocSize = 0) Then
MsgBox "读取远程数据出错", vbOKOnly Or vbExclamation, "在线升级"
End If Else
MsgBox "ERROR!", vbOKOnly Or vbExclamation, "在线升级"
End If End If Case icError
MsgBox "与主机通信出错", vbOKOnly Or vbExclamation, "在线升级" Case icResolvingHost
lblProgressInfo.Caption = "正在查找主机..." Case icHostResolved
lblProgressInfo.Caption = "已经找到主机" Case icConnecting
lblProgressInfo.Caption = "正在联系主机" Case icConnected
lblProgressInfo.Caption = "已经连接到主机" Case icRequesting
lblProgressInfo.Caption = "正在发送请求..." Case icRequestSent
lblProgressInfo.Caption = "成功发送请求" Case icReceivingResponse
lblProgressInfo.Caption = "正在接收回应..." Case icDisconnecting
lblProgressInfo.Caption = "正在断开连接..." Case icDisconnected
lblProgressInfo.Caption = "已经断开连接"End SelectEnd Sub