VB中利用第三方控件实现软件在线升级_第1页
VB中利用第三方控件实现软件在线升级_第2页
VB中利用第三方控件实现软件在线升级_第3页
VB中利用第三方控件实现软件在线升级_第4页
VB中利用第三方控件实现软件在线升级_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB中利用第三方控件实现软件在线升级下载本文控件和示例源代码 大家对金山毒霸、瑞星等杀毒软件的在线升级一定不陌生吧?它们可以利用在线升级程序进行在线升级 ,无需用户访问网站下载。这样的功能的确对于使用者来说是十分方便的。那么,您是否也想为您的软件添加方便的在线升级的功能呢?下面介绍一个第三方控件,能够帮你非常容易地就实现。 bkDLControl控件一个可以快速实现在线下载的控件,它在下载的同时通过进度条显示进度。你可以编写当其下载完成后的事件,这样我们就可以轻松达到在线升级的目的。要了解该控件强大便捷的功能,下面我们就通过一个实例来讲解。第一步:首先启动Visual Basic 6.0,新建一个窗口。第二步:加载bkDLControl控件。在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到bkDLControl控件,载入它,命名为“DL”;因为是一个进度条,所以把大小拖成一个适当的长条状,把它放到Form1窗体中适当位置即可。其他属性保持默认即可。第三步:加载其他控件,完成界面的设置。在窗体中添加2个CommandButton控件,名称分别为cmdBegin和cmdCancel,Caption属性分别为“开始”和“取消”,其中设置cmdCancel的Enabled属性为“False”。添加一个ComboBox控件,名称为cboURL,在list中添加几个下载地址(如图1),其他属性保持默认。添加该控件用于选择下载地址,这样可以用用户自行选择下载的服务器。添加一个Listbox,命名为lstOut。为了美观,可以把Appearance属性设置为“0Flat”。该控件用于显示下载过程中的进度说明。在bkDLControl控件的右下方添加一个Label,命名为lblProg,设置Autosize属性为True。它将用于实时显示下载的大小和百分比。程序总体界面如图2,在界面和属性设置上非常的简单。到这里就完成了这个演示程序的界面设置,接着进行代码的编写。 第四步:编写代码,实现具体的功能。 编写Form1的Load事件,使程序启动时cboURL显示默认的下载地址。代码如下:Private Sub Form_Load() cboURL.ListIndex = 0 End Sub添加两个commandbutton的Click事件,分别实现开始下载和取消下载的功能。Private Sub cmdBegin_Click()With DL.FileURL = cboURL.Text 设置bkDLControl的下载地址.SaveFilePath = App.Path 设置下载后的保存路径,这里设置为当前程序所在文件夹LogItem 请求下载 & cboURL.Text在lstOut中添加下载状态说明,这里使用了一个自定义过程,该过程的代码将在下面第四步说明.BeginDownload 发出开始下载命令End WithcmdCancel.Enabled = True 设置cmdCancel属性为True,使下载过程中可以中止下载End SubPrivate Sub cmdCancel_Click()DL.CancelDownload 发出取消下载命令End Sub编写bkDLControl各个事件的代码,以完成具体功能:Private Sub DL_DLBeginDownload()LogItem 开始下载从 & DL.FileURLEnd SubPrivate Sub DL_DLCanceled()LogItem 取消下载End Sub上面两段代码是开始和取消下载时的事件,向lstOut输入状态。Private Sub DL_DLComplete(Bytes As Long) 下载完成的事件cmdCancel.Enabled = False If Bytes 0& Then 如果下载的不是零字节,则显示相关信息LogItem 完成 & SizeString(Bytes) & 下载并保存到 & DL.SaveFileName下面添加实现文件更新的代码ElseLogItem 下载失败End IfEnd Sub上面的代码调用了一个自定义函数SizeString,代码同样在第四步中说明。这段bkDLControl完成下载时激发的事件是我们实现在线升级的关键,下载完成后就可以调用下载的内容完成更新,具体的更新办法有很多种,大家可以充分发挥了。Private Sub DL_DLConnected(ConnAddr As String)LogItem 连接到 & ConnAddr 当连接成功时返回IP地址End SubPrivate Sub DL_DLError(E As bkDLError, Error As String)Dim strErrType As String 下载错误时的事件Select Case ECase bkDLEUnavailablestrErrType = 不可下载文件Case bkDLERedirectstrErrType = 重定向Case bkDLEZeroLengthstrErrType = 没有字节返回Case bkDLESaveErrorstrErrType = 文件保存错误Case bkDLEUnknownstrErrType = 不明错误End SelectLogItem 错误 - & strErrType & : & ErrorEnd Sub当bkDLControl控件返回零字节时激发上面的出错事件,并在lstOut中显示相关错误信息。Private Sub DL_DLFileSize(Bytes As Long)当连接后返回文件的大小,单位为字节,我们通过自定义的函数对单位进行必要转换LogItem 文件大小为 & SizeString(Bytes) & ( & CStr(Bytes) & bytes)End SubPrivate Sub DL_DLMIMEType(MIMEType As String)LogItem MIME类型是 & MIMETypeEnd SubPrivate Sub DL_DLProgress(Percent As Single, BytesRead As Long, TotalBytes As Long)下载过程中的事件,返回下载百分比和已下载字节数。我们通过下面一行代码在lstOut中显示lblProg.Caption = Format(Percent, 0%) & of & SizeString(TotalBytes)End SubPrivate Sub DL_DLRedirect(ConnAddr As String)返回地址如果重定向LogItem Index, 重定向到 & ConnAddrEnd Sub上面是bkDLControl的相关代码,是这个在线升级程序中最关键的地方。在其提供的事件中,我们可以有很多的发挥空间,去实现很多的功能。编写SizeString函数和LogItem过程,完成最后的代码编写。Private Sub LogItem(strItem As String)With lstOut.AddItem & strItemIf .NewIndex .TopIndex + 17 Then.TopIndex = .NewIndex - 16End IfEnd WithEnd Sub上面的过程用于向lstOut添加下载进度信息,其中使用了一个变量,用于装载相应事件描述。Private Function SizeString(lBytes As Long) As StringIf lBytes &H400& ThenSizeString = CStr(lBytes) & bElseIf lBytes &H100000 ThenSizeString = CStr(lBytes 1024) & kElseIf lBytes &H20000000 ThenSizeString = Replace$(Format$(lBytes 1024) / 1024, 0.0), .0, vbNullString) & MElseSizeString = Replace$(Format$(lBytes (1024 2) / 1024, #,#0.0), .0, vbNullString) & GEnd IfEnd Function上面的函数把传送来的lBytes根据其大小

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论