VB下载百分比和进度条问题

Private Sub cmdGET_Click()
savefile.Text = App.Path & "\ss.exe"
Inet1.Execute "http://www.xxx.com/update/Prosc.exe", "get"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
'State = 12 时,用 GetChunk 方法检索服务器的响应。
Dim vtData() As Byte
Select Case State
'...没有列举其它情况。
Case icError '11
'出现错误时,返回 ResponseCode 和 ResponseInfo。
vtData = Inet1.ResponseCode & ":" & Inet1.ResponseInfo
Case icResponseCompleted ' 12
Dim bDone As Boolean: bDone = False
'取得第一个块。
vtData() = Inet1.GetChunk(1024, 1) '问题一: 这句是什么意思?
DoEvents
Open savefile.Text For Binary Access Write As #1 '设置保存路径文件后开始保存
'获取下载文件长度
If Len(Inet1.GetHeader("Content-Length")) > 0 Then ProgressBar1.Max = CLng(Inet1.GetHeader("Content-Length"))
' CLng(Inet1.GetHeader("Content-Length")) 为文件大小
'循环分块下载
Do While Not bDone
Put #1, Loc(1) + 1, vtData()
vtData() = Inet1.GetChunk(1024, 1)
DoEvents
Label1.Caption = Loc(1) '为已下载的大小
ProgressBar1.Value = Loc(1) '设置进度条增加
If Loc(1) >= ProgressBar1.Max Then bDone = True
Loop
Close #1
MsgBox "下载完成", vbInformation, "通知"
End Select
End Sub

小弟我使用上面的代码下载文件,文件大小为 100000 Byte 问题是没什么,可是我不想使用 ProgressBar1 ,想用 Picture1 来代替 ProgressBar1,
Pictrue1 的最终Width为 2000,初始为0,如何在 Label1.caption 显示下载的百分比? 如何让 PICTURE 的宽度按下载比例增加?
求教各位大虾,谢谢。

修改后的代码如下,手头没有VB环境,没有调试,需要自己调试一下;

Private Sub cmdGET_Click()
savefile.Text = App.Path & "\ss.exe"
Inet1.Execute "http://www.xxx.com/update/Prosc.exe", "get"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
'State = 12 时,用 GetChunk 方法检索服务器的响应。
Dim vtData() As Byte
Select Case State
'...没有列举其它情况。
Case icError '11
'出现错误时,返回 ResponseCode 和 ResponseInfo。
vtData = Inet1.ResponseCode & ":" & Inet1.ResponseInfo
Case icResponseCompleted ' 12
Dim bDone As Boolean: bDone = False
Dim lDatalen as Long : lDatalen = 0
'取得第一个块。
vtData() = Inet1.GetChunk(1024, 1) '问题一: 这句是什么意思? 回答:取得第一块数据,块大小是1024字节
DoEvents
Open savefile.Text For Binary Access Write As #1 '设置保存路径文件后开始保存
'获取下载文件长度
If Len(Inet1.GetHeader("Content-Length")) > 0 Then lDatalen = CLng(Inet1.GetHeader("Content-Length"))
' CLng(Inet1.GetHeader("Content-Length")) 为文件大小
'循环分块下载
Do While Not bDone
Put #1, Loc(1) + 1, vtData()
vtData() = Inet1.GetChunk(1024, 1)
DoEvents
Label1.Caption = (Loc(1) * 100 / lDatalen) & "%" '计算已下载百分比,这里没有保留小数
Pictrue1.width= 2000 * (Loc(1) / lDatalen) '设置图片宽度,用总长度乘以完成百分比

If Loc(1) >= lDatalen Then bDone = True
Loop
Close #1
MsgBox "下载完成", vbInformation, "通知"
End Select
End Sub
温馨提示:内容为网友见解,仅供参考
无其他回答

VB下载百分比和进度条问题
Label1.Caption = (Loc(1) * 100 \/ lDatalen) & "%" '计算已下载百分比,这里没有保留小数 Pictrue1.width= 2000 * (Loc(1) \/ lDatalen) '设置图片宽度,用总长度乘以完成百分比 If Loc(1) >= lDatalen Then bDone = True Loop Close #1 MsgBox "下载完成", vbInformation, "通...

安装VB6.0时出错怎么解决
安装条件界面时,选择安装路径并点击"典型安装"。当进度条走到100%后,程序可能会暂时卡住,但其实已经安装完毕。此时,通过Ctrl+Alt+Del启动任务管理器,结束安装任务。然后,在开始菜单中找到新安装的VB 6.0程序,确认它的存在。最后,打开VB 6.0并运行,确认一切正常,安装过程顺利进行。通过这些步骤...

VB 文本显示进度条当前百分比
在循环里要增加一条闲置语句。不然,程序一直忙着循环,而来不及向显卡发送数据。回答补充:1、在for……next之间任何位置都可以,当然,你的也可以。2、原因就是在每次执行循环到这里留出空闲响应其他任务,在这里就表现为刷新显示。3、速度应该略有影响,但不会太大。因为刷新占用cpu很少,使用完立刻...

VB如何实现进度条
1.首先,编写一个程序框架,如下所示。2.然后您可以在这里输入各种语句,如下所示。3.然后找到两个语句块的中间部分,如下图所示。4.输入语句[Exitsub],如下所示。5.最后,您可以运行测试并解决实现进度条的问题,如下所示。注意事项:VB背后的思想是让程序员(新手和专家)都能轻松使用它。V...

关于VB.NET中进度条使用问题
VB.Net中提供了ProgressBar控件,用于显示进度条 设置ProgressBar的Minimum和Maximum属性为循环的起始和终止数值 然后在代码的循环体中计算当前循环的进度,然后设置进度条的Value属性,将进度显示在进度条上

求VB进度条的详细使用方法
50,那么该控件将显示百分之五十的填充块,如下所示:将 Max 属性设置为已知的界限 要对 ProgressBar 进行编程,则必须首先确定 Value 属性攀升的界限。例如,如果正在下载文件,并且应用程序能够确定该文件有多少千字节,那么可将 Max 属性设置为这个数。在该文件下载过程中,应用程序还必须能够确定该文件...

求人用vb做一个超简单的进度条,可以显示百分比,可以控制进度条多长时间...
For i = 0 To UBound(RandArray)RandArray(i) = Int(Rnd() * 1000)TextBox1.Text = TextBox1.Text & RandArray(i) & vbCrLf ProgressBar1.Value = i ‘随着for循环的进行,进度条随之变化,显示进度 Next i End Sub 这是VB2010内的一段练习,进度条工具箱中给的是上面的 ProgressBar ...

求一vb实例-要求进度条按数字的百分比显示!邮箱184400843!发的话先...
Private Sub Form_Load()ProgressBar1.Max = 100 ProgressBar1.Min = 0 End Sub Private Sub Text1_Change()If Val(Text1.Text) >= 0 And Val(Text1.Text) <= 100 Then ProgressBar1.Value = Val(Text1.Text)End If End Sub 控件应该会添加吧 ...

每篇一个VBA小技巧-东拼西凑进度条
通过VBA实现进度条展示,可以利用改变窗体中的文本框宽度来直观表示进度。操作步骤如下:首先,在VB编辑器中创建一个窗体,并设置其showmodel属性为false,确保进度条可以自动覆盖显示,避免新信息被旧信息遮挡。接着,添加一个文本框到窗体中。设置其宽度为200,高度随意,同时调整字体颜色和背景色为相同的...

vb xmlhttp添加进度条
这个要获得精确的进度条几乎是不可能的。精确的下载进度条必须具有两个准确的数据:进度总量(下面简称N)和实时进度量(下面简称x)。一般而言,下载进度可以按下载量或下载时间来统计,如果按下载量,那么N很容易得到,但由于http协议是很难获得精确的实时下载量的(连IE本身的进度条都是糊弄人的呢),...

相似回答