用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧VisualBasic

VisualBasic第三方控件实现软件在线升级

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 19:55:20

Private Sub DL_DLConnected(ConnAddr As String)
 LogItem "连接到 " & ConnAddr ’当连接成功时返回IP地址
End Sub

Private Sub DL_DLError(E As bkDLError, Error As String)
 Dim strErrType As String ’下载错误时的事件
 Select Case E
  Case bkDLEUnavailable
   strErrType = "不可下载文件"
  Case bkDLERedirect
   strErrType = "重定向"
  Case bkDLEZeroLength
   strErrType = "没有字节返回"
  Case bkDLESaveError
   strErrType = "文件保存错误"
  Case bkDLEUnknown
   strErrType = "不明错误"
 End Select
 LogItem "错误 - " & strErrType & ": " & Error
End Sub


  当bkDLControl控件返回零字节时激发上面的出错事件,并在lstOut中显示相关错误信息。

Private Sub DL_DLFileSize(Bytes As Long)
 ’当连接后返回文件的大小,单位为字节,我们通过自定义的函数对单位进行必要转换
 LogItem "文件大小为" & SizeString(Bytes) & " (" & CStr(Bytes) & " bytes)"
End Sub

Private Sub DL_DLMIMEType(MIMEType As String)
 LogItem "MIME类型是 " & MIMEType
End Sub

Private Sub DL_DLProgress(Percent As Single, BytesRead As Long, TotalBytes As Long)
 ’下载过程中的事件,返回下载百分比和已下载字节数。我们通过下面一行代码在lstOut中显示
 lblProg.Caption = Format(Percent, "0%") & " of " & SizeString(TotalBytes)
End Sub

Private Sub DL_DLRedirect(ConnAddr As String)
 ’返回地址如果重定向 
 LogItem Index, "重定向到" & ConnAddr
End Sub


  上面是bkDLControl的相关代码,是这个在线升级程序中最关键的地方。在其提供的事件中,我们可以有很多的发挥空间,去实现很多的功能。

  ④编写SizeString函数和LogItem过程,完成最后的代码编写。

Private Sub LogItem(strItem As String)
 With lstOut
  .AddItem "> " & strItem
  If .NewIndex > .TopIndex + 17 Then
   .TopIndex = .NewIndex - 16
  End If
 End With
End Sub


  上面的过程用于向lstOut添加下载进度信息,其中使用了一个变量,用于装载相应事件描述。

Private Function SizeString(lBytes As Long) As String
 If lBytes < &H400& Then
  SizeString = CStr(lBytes) & "b"
 ElseIf lBytes < &H100000 Then
  SizeString = CStr(lBytes \ 1024) & "k"
 ElseIf lBytes < &H20000000 Then
  SizeString = Replace$(Format$((lBytes \ 1024) / 1024, "0.0"), ".0", vbNullString) & "M"
 Else
  SizeString = Replace$(Format$((lBytes \ (1024 ^ 2)) / 1024, "#,##0.0"), ".0", vbNullString) & "G"
 End If
End Function


  上面的函数把传送来的lBytes根据其大小,转换成合适的单位。
  到这里,这个演示程序就完成了,按下F5,在下拉框中选择地址或者输入其他下载地址后按开始就可以开始下载了。我们可以看到连接下载信息,实时的已下载进度情况,并用进度条的方式表现(如图3)。

图3

  有了bkDLControl控件,我们可以很方便地下载更新程序,并在其下载完成激发的事件中写入适当代码,就可以轻松完成程序在线升级,这着实为你的软件添加了方便和亮点!



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:7,062.50000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号