如题,我想用inet控件下载文件的同时进度用ProgressBar控件显示出来,请问该怎么做?

解决方案 »

  1.   

    可是找不到相关源代码啊,我又是新手,所以请大家多多关照,给小弟些code
      

  2.   


    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
      

  3.   

    不好意思,怎么老是提示,读取远程数据出错,
    是不是因为
    Private Const strURL = "http://www.netho.org/down/game.dll"
    Private Const FileName = "game.dll"
    呀?
      

  4.   

    建议使用金峰下载控见带进度条   我通过它已写出和金山一样的Update
      

  5.   

    我有个好小例子,可以做达到楼主的需求。不过我没地方上传,可以email给你吗?/***********************************************
    书读得越多而不加思索,你就会觉得你知道得很多;   
    而当你读书而思考得越多的时候,你就会越清楚地看
    到,你知道得还很少。                ──伏尔泰*/
      

  6.   

    真的吗?那谢谢你,发到我的信箱好吗?
    [email protected]
    谢谢
      

  7.   

    怎么没人回答我了啊,大侠们救命啊,现在急啊!
    等待ing...