VB.NET实现程序在线更新的实例

Java练习题: Demo01 - Demo31 public class Demo01{ public static void main(String[] args){ System.out.println((9.5 * 4.5 - 2.5 * 3) / (45.5 - 3.5)); } } public class Demo02{ public static void main(String[] args){ System.out.println(4 * (1.0 - 1.0 / 3 + 1. 阅读详情
因为项目需要做了一个在线升级程序,非常爽,所以弄出来和大家分享一下。
可能到时候项目做大了,我会做断点续传与多任务多线程进去,当然有兴趣的朋友可以共同探讨一下
主要用到类库中的webrequest,webresponse和webclient类
另外使用到了devexpress进度条控件

整个程序分为3个部分
1.客户机上的配置文件
2.服务器上的配置文件与需要更新的文件
3.客户机上的升级程序


首先介绍一下客户机上的配置文件,相关部分我会详细说明
文件名称 update.ini
文件内容
[serverpath]
address=http://www.mycom.com/update/
主要就是说明一下要获取升级文件的地址
请一定要在最后加上"/",因为我懒,在程序中没有判断是否有"/"

服务器上的配置文件
文件名称 update.XML
文件内容
<?XML version="1.0" encoding="gb2312"?>
<update>
<file>
<filename>要升级的文件名称</filename>
<version>文件的版本</version>
<lastmodifydate>文件最后修改的日期</lastmodifydate>
<filelength>文件的大小(单位为字节)</filelength>
<target>文件对于客户机运行目录下的相对地址</target>
<downurl>升级文件存放的url地址</downurl>
</file>
</update>
这里我举例说明一下用法,假如我有两个文件要升级
<?XML version="1.0" encoding="gb2312"?>
<update>
<file>
<filename>我的管理系统.exe</filename>
<version>1.0.2207.21855</version>
<lastmodifydate>2006-1-16</lastmodifydate>
<filelength>7401472</filelength>
<target>/我的管理系统.exe</target>
<downurl>http://www.mycom.com/update/main.exe</downurl>
</file>
<file>
<filename>email.dll</filename>
<version>1.0.2207.21855</version>
<lastmodifydate>2006-1-16</lastmodifydate>
<filelength>90112</filelength>
<target>/email.dll</target>
<downurl>http://www.mycom.com/update/email.dll</downurl>
</file>
</update>
我做的这个升级程序的运行机制是这样的:
在LOAD事件里面创建一个临时文件夹,放下载的文件的
(1)首先下载UPDATE.XML
(2)将XML内容读到DataSet中去
(3)判断客户机上是否有这些文件,如果没有,就是要更新的
(4)如果客户机上有这些文件,如果版本的那一列也就是version不为空的话,将与客户机进行版本比对
(5)如果版本那一列为空,将进行最后修改日期比对,因为有些更新的不是有版本的文件,比如文本文件,就需要进行最后修改日期比对
(6)如果版本或者修改日期都一样,就不需要更新,从DataSet中删除那些不需要更新的文件行
(7)下载文件
(8)杀掉运行的主程序进程
(9)将要更新的文件复制到目标处
(10)删除临时文件夹的所有内容
(11)运行主程序
WEBASP这个发表文档不能发图片,好郁闷呀~~~~~

再说说重点,客户机上的升级程序,我把所有程序都贴在里面了。大家研究研究,如果照搬是不能运行的,稍微修改就可以了,因为我引用了我自己做的几个类,没有也不需要贴出来,还有用到了DEVEXPRESS控件,不过要点都注释了。
具体代码如下:
Imports System
Imports System.Net
Imports System.Text
Imports System.Threading
Imports commanfunc
Imports Scripting
Imports System.io
Imports api


Friend Class update
Inherits System.Windows.Forms.Form

Private mywebclient As New WebClient
Private bytenum As Long
Private threaddown, threadchk As Thread
Private mybyte() As Byte
Private zipsize As Long
Private func As New func
Private fso As New FileSystemObject
Private fl As Scripting.File
Private ready As String = Application.StartupPath & "/images/ready.ico"
Private down As String = Application.StartupPath & "/images/down.ico"
Private inipath As String = Application.StartupPath & "/update.ini"
Private tempfolder As String = Application.StartupPath & "/temp_download" '临时下载文件夹
Private address As String '下载网站

Private updateDataSet As New DataSet '升级配置文件数据集
Private curversion As String
Private alldownloadbyte As Long = 0
Private runthread As Thread '执行时候运行的线程

Private myapi As New api.myAPI


#Region " Windows 窗体设计器生成的代码 "

Public Sub New()
MyBase.New()

'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化

End Sub

'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer

'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox
Friend WithEvents PictureBox3 As System.Windows.Forms.PictureBox
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents lbl As System.Windows.Forms.Label
Friend WithEvents btnupdate As System.Windows.Forms.Button
Friend WithEvents btnclose As System.Windows.Forms.Button
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents Label10 As System.Windows.Forms.Label
Friend WithEvents PictureBox4 As System.Windows.Forms.PictureBox
Friend WithEvents PictureBox9 As System.Windows.Forms.PictureBox
Friend WithEvents Progressdownload As DevExpress.XtraEditors.ProgressBarControl
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents ProgressCdownload As DevExpress.XtraEditors.ProgressBarControl
Friend WithEvents
华容道演示DEMO版,练习VB编程 华容道演示DEMO版,练习VB编程   步数不是最少,不过已经达到了学习目的,API初级学习、图片的透明处理、时间控制、读文件。  图片制作过程:下载图片   用PhotoShop调整颜色。裁剪   用3DMax处理中... 材质+灯光处理后    下 阅读详情

相关推荐

VB.NET 程序自动升级功能模块

VB.NET 程序自动升级功能模块 VB.NET 程序自动升级功能模块 VB.NET 程序自动升级功能模块

vb.net软件在线升级_更新程序

摘要:VB源码,网络相关,自动更新,自动升级  软件在线升级_更新程序,支持多线程下载,XML配置更新文件内容,VS2008工程文件。

使用SimpleUpdater实现WinForm自动升级

使用SimpleUpdater实现WinForm自动升级

VB.NET做winform的在线更新程序

- 中国WEB开发者网络 (http://www.webasp.net)-- 技术教程 (http://www.webasp.net/article/)--- 用VB.NET做winform的在线更新程序 (http://www.webasp.net/article/28/27208.htm)

熊哥的专栏 3119

VB.NET在线升级程序源代码,可以独立使用

这个程序是我做一个办公管理系统的时候用到的,这里有源码,需要的亲拿去研究学习:vb.net在线升级程序:程序实现了通过vb.net连接远程云服务器,并且从云服务器中获取更新,并且自动下载更新,升级本地客户端程序:下载地址:UpEASoft.zip 429.56 KB...

modabobo 559

Ztree的相关demo练习记录

Ztree的相关demo练习记录 1.引入zTree的相关资源,例如:js,css, <link type="text/css" href="${ctx}/static/web/css/consult/bootstrap.css" rel="stylesheet"/> <link rel="stylesheet" href="${ctx}/static/common...

weixin_41125046的博客 177

QSS样式表入门练习Demo

QSS样式表入门练习Demo 去发现同类优质开源项目:https://gitcode.com/ 资源介绍 本仓库提供了一个名为“QSS样式表入门练习Demo.pdf”的资源文件,该文件是一个超详细的Qss入门练习Demo。文件中包含了丰富的效果图和实现样式表,适合初学者学习和参考。 内容概述 效果图展示:文件中提供了多个效果图,展示了不同样式表的应用效果。 实现样式表:详细列出了每个效果图对应的...

gitblog_06650的博客 355

练习DEMO

1111111111111111111

nj_apple_tree 189

快来玩玩便捷、高效的Demo练习场

Vonajs 提供了一个 Demo 练习场的功能,允许我们非常方便、快捷的对代码做测试,对想法做验证

zhennann的博客 300

练习Demo

weixin_43675386的博客 144

VB.NET 合并任意文件

这是一个可以合并任意两个文件的程序,内含一个函数,每一步都有注释。

Winform实用的自动在线更新升级功能

Winform实用的自动在线更新升级功能,是很多开发人员。

软件在线更新/升级模块源代码 vb.net (vs2010)

软件在线更新/升级模块源代码 vb.net (vs2010) ,实现客户端远程自动更新源代码,C/S架构软件必备。 1、客户端窗体 2、显示进度条 3、显示要下载文件列表 4、QQ升级风格

【Java篇】8个图形界面小练习demo_java练习demo

不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2401_84519859的博客 519

一些简单的前端练习demo

前言:我太缺项目练习了 fullpage练习页面: 360页面demo地址 预览链接 另一个绝地求生的demo 预览链接 bootstrap练习页面: HUAWEI网页的demo地址 预览链接 练习下模板引擎的demo: 蘑菇街demo地址 预览链接 啥框架都没用的demo: 拉勾网的demo地址 预览链接 ...

没得简介 776

【亲测免费】 前端+Three.js+绘制广西地图+练习Demo

前端+Three.js+绘制广西地图+练习Demo 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源文件提供了一个基于Three.js的前端练习Demo,主要功能是简单绘制广西地图,并通过鼠标移动显示不同城市的名称。该Demo适用于Three.js初学者进行练习和学习。 功能特点 广西地图绘制:使用Three.js技术绘制广西地图,展示广西各城市的地理位置。 鼠标交...

gitblog_09709的博客 503

练习demo

练习demo 效果展示: 代码展示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> table {background-color: d...

jiepp的博客 210
上一篇: VB.Net远程控制编程实例[鼠标钩子、 键盘钩子]
下一篇: VB.Net摄像头编程类
rainbowsoftware
博客等级 码龄20年 21粉丝 19原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值