急!用VB怎样实现程序安装好后能在网上搜索新版本,然后下载更新。
解决方案 »
- 多个Webbrowser1部件共享cookie的问题
- 用VB验证哥德巴赫猜想
- Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=;Initial Catalog=database;Data Source=" & SVName APP=[ AppNa
- VB 最大支持多少为位的RSA算法????100分
- 如何获得远程系统信息?
- 如何制做通用的安装文件! THANKS !!
- 98系統關與Batch檔的問題,請各位看看.--急
- vb+sql使用ado出现莫名其妙的错误!!!!!!!(高分送)
- 后缀为 .LIB 并带有 .idx 文件的数据库如何打开? (急)
- 《〈VB网络初学者,关于winsock控件不可用的问题~~~~~~~~~~~~~~~~~~~~~~~~〉》
- 对已存在的一个EXCEL文件的读写方法?
- 100分,求思路.
如果开发者和用户不在同一个局域网内,那么用上文的方法是行不通的,因为我们没有办法映射不在同一个局域网内的网络驱动器。不过我们可以利用Ftp协议来进行文件传输。有关Ftp协议如何进行文件的传输,不是本文讨论的重点,所以略去。本文只给出如何传输。
首先要安装IIS(Internet Information Server),笔者使用的版本是5.0。打开IIS,然后在IIS的默认Ftp节点上单击右键,在弹出的菜单中选择新建->虚拟目录,在向导界面上单击按“下一步”按钮,给Ftp服务器取一个别名,这里取名为FileServer,单击“下一步”,选择编译好的程序程序所在的文件夹,单击“下一步”,以后都用IIS的默认值,直到完成。然后在默认Ftp节点上单击右键,在弹出菜单中选择属性,在“安全帐号”选项卡中,指定一个Ftp帐号,这个Ftp帐号是你Windows里面的一个帐号,这里假设是Update,密码123。这样就建好了我们的文件服务器。
在vb中要进行Ftp的传输,可以使用Inet控件,该控件功能十分强大,而且使用也十分方便。在程序的窗体上加上Inet控件,把Inet的Protocol属性设置成2-icFtp,就可以利用Inet来进行Ftp传输了。下面给出代码
With Inet1
.URL = “FileServer”
.UserName =”Update”
.Password = “123”
.Execute , "GET " & “My.exe ” & “ ” & App.path & “\” & “My.exe”’’copy到本地
End With
不过Ftp有个不方便之处在于,无法检查到Ftp服务器上文件的版本。为了解决这个问题,可以用一个文本文件来记录程序的版本,由于文本文件非常小,下载起来非常快,用户几乎感觉不到延迟,然后读取文本文件中的版本信息,再与本地程序比较是否是新版本,如果是,再下载新的版本,如果不是就不用下载。下面给出代码:
dim fso as object
dim txtFile as object
dim strVersion as string
With Inet1
.URL = “FileServer”
.UserName =”Update”
.Password = “123”
.Execute , "GET " & “MyVersion.txt ” & “ ” & App.path & “\” & “MyVersion.txt”’下载版本文件
set fso=CreateObject("Scripting.FileSystemObject")
set txtFile=fso.Opentextfile(app.path & “\” & “MyVersion.txt”)
strversion=txtFile.readline ‘’读取版本信息
txtFile.close
set txtFile=Nonthing
set fso=nothing
If Len(strVersion) = 0 Then Exit Function ''没有就退出去
arrVer = Split(strVersion, ".")
If App.Major < arrVer(0) Then
blnNeedUPdate = True
ElseIf App.Minor < arrVer(1) Then
blnNeedUPdate = True
ElseIf App.Revision < arrVer(3) Then
blnNeedUPdate = True
End If
If blnNeedUPdate then ‘’如果版本较新就下载新版本
.Excute “Get My.exe ” & “ ” & app.path & “\My.exe”
End if
End With
这样就完成了自动更新。只要把你的Ftp服务器在Internet上,即使用户与你不在同一个局域网,只要能上Internet,同样能进行自动更新。当然在同一个局域网内,也可以采用此方法。所以Ftp的方法更普遍一些,但是它的缺点是版本文件必须另外维护,如果出现版本文件的信息和软件的版本不一致,就会造成软件重复下载旧版本或是不下载新版本的问题。