用wininet.dll写了一个ftp客户端,vb写的.现在老板非要求加上上传进度条,请问wininet.dll可以监视或记录它发出的数据流量么.或者有没有什么别的思路方法啊.

解决方案 »

  1.   

    我的思想是:
    1.通过FTP得到文件的bytes,后进行分块传输,比如你每次传输255个bytes
    2.在传输的过程中用触发事件
    3.其实网络上的数据流和文件分割基本上是相同的原理,只是通过网络一部分一部分的接收数据包过来,在用put写入本地文件,这样一来有了文件大小,算出总共用的时间,则速度就出来了,进度条那是更出来了.
    具体你可以查看
    Public Declare Function InternetReadFile Lib "wininet.dll" _
        (ByVal hFile As Long, ByRef sBuffer As Byte, ByVal lNumBytesToRead As Long, dwNumberOfBytesRead As Long) As Integer
    这个API
      

  2.   

    还有就是上面的API说明一下
    hFile文件句柄
    sBuffer中
    lNumBytesToRead 没次读的大小
    dwNumberOfBytesRead读写状态
      

  3.   

    我用inet作ftp的
    做了进度条和速度
    进度条是配合timer控件做的
    每隔1秒算一下本地文件大小/源文件大小 *100 就是进度条的值