欢迎来到天天文库
浏览记录
ID:23242284
大小:77.68 KB
页数:6页
时间:2018-11-06
《vb中利用第三方控件实现软件在线升级》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VB中利用第三方控件实现软件在线升级(bkDLControl控件)2006-11-21 bkDLControl控件一个可以快速实现在线下载的控件,它在下载的同时通过进度条显示进度。你可以编写当其下载完成后的事件,这样我们就可以轻松达到在线升级的目的。 要了解该控件强大便捷的功能,下面我们就通过一个实例来讲解。 第一步:首先启动VisualBasic6.0,新建一个窗口。 第二步:加载bkDLControl控件。 ①在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到bkDLControl控件,载入它,命名为“DL”;因为是一个进度条,
2、所以把大小拖成一个适当的长条状,把它放到Form1窗体中适当位置即可。其他属性保持默认即可。 第三步:加载其他控件,完成界面的设置。 ①在窗体中添加2个CommandButton控件,名称分别为cmdBegin和cmdCancel,Caption属性分别为“开始”和“取消”,其中设置cmdCancel的Enabled属性为“False”。 ②添加一个ComboBox控件,名称为cboURL,在list中添加几个下载地址(如图1),其他属性保持默认。添加该控件用于选择下载地址,这样可以用用户自行选择下载的服务器。 ③添加一个Listbox,命名为lstOut
3、。为了美观,可以把Appearance属性设置为“0-Flat”。该控件用于显示下载过程中的进度说明。 ④在bkDLControl控件的右下方添加一个Label,命名为lblProg,设置Autosize属性为True。它将用于实时显示下载的大小和百分比。 程序总体界面如图2,在界面和属性设置上非常的简单。 到这里就完成了这个演示程序的界面设置,接着进行代码的编写。 第四步:编写代码,实现具体的功能。 ①编写Form1的Load事件,使程序启动时cboURL显示默认的下载地址。代码如下:PrivateSubForm_Load() cboURL.ListI
4、ndex=0EndSub ②添加两个commandbutton的Click事件,分别实现开始下载和取消下载的功能。PrivateSubcmdBegin_Click() WithDL .FileURL=cboURL.Text’设置bkDLControl的下载地址 .SaveFilePath=App.Path’设置下载后的保存路径,这里设置为当前程序所在文件夹 LogItem"请求下载"&cboURL.Text ’在lstOut中添加下载状态说明,这里使用了一个自定义过程,该过程的代码将在下面第四步说明 .BeginDo
5、wnload’发出开始下载命令 EndWith cmdCancel.Enabled=True’设置cmdCancel属性为True,使下载过程中可以中止下载EndSubPrivateSubcmdCancel_Click() DL.CancelDownload’发出取消下载命令EndSub ③编写bkDLControl各个事件的代码,以完成具体功能:PrivateSubDL_DLBeginDownload() LogItem"开始下载从"&DL.FileURLEndSubPrivateSubDL_DLCanceled() LogItem"取消下载"EndS
6、ub 上面两段代码是开始和取消下载时的事件,向lstOut输入状态。PrivateSubDL_DLComplete(BytesAsLong)’下载完成的事件 cmdCancel.Enabled=False IfBytes>0&Then’如果下载的不是零字节,则显示相关信息 LogItem"完成"&SizeString(Bytes)&"下载并保存到"&DL.SaveFileName ’下面添加实现文件更新的代码 …… Else LogItem"下载失败" EndIfEndSub 上面的代码调用了一个自定义函数SizeString,代码同样在第四步中说明。
7、这段bkDLControl完成下载时激发的事件是我们实现在线升级的关键,下载完成后就可以调用下载的内容完成更新,具体的更新办法有很多种,大家可以充分发挥了。PrivateSubDL_DLConnected(ConnAddrAsString) LogItem"连接到"&ConnAddr’当连接成功时返回IP地址EndSubPrivateSubDL_DLError(EAsbkDLError,ErrorAsString) DimstrErrTypeAsString’下载错误时的事件 SelectCaseE CasebkDLEUnavailable strErrTy
8、pe="不
此文档下载收益归作者所有