'本程序的版本号从1开始,逐次加大
'发布新版本后,除了将新版本放到下载目录中外,还要删除原文件或改名,程序在升级时找不到原旧文件名,才会向上推新的带版本号的文件名进行下载
Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Declare Function DeleteUrlCacheEntry Lib "wininet" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Function CheckUrl(Url As String) As Boolean '检测网络文件是否存在
Dim XMLObject As Object
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
XMLObject.Open "GET", Url, False
XMLObject.send ""
If XMLObject.Status = 200 Then
CheckUrl = True
Else
CheckUrl = False
End If
Set XMLObject = Nothing
End Function
Sub MyUpgrade() '下载升级EXCEL的主程序
Dim PathStr As String, NewFileUrl As String, DownOk As Long, Vers%, i%, UrlPath$, FileName$, NewVers%
Vers = Val(ThisWorkbook.BuiltinDocumentProperties("Category").Value) '获取现有版本号,这个版本号写在文件的属性里,以免影响文件结构
UrlPath = "http://222.209.208.142:81/UpFiles/" '这是程序升级网址的URL路径,可根据您的路径修改
FileName = "我的程序名.xls" '这是原文件名,可根据您的程序名修改,用户改文件名,对此升级无影响
NewFileUrl = UrlPath & Vers & FileName '当前版本的完整地址
PathStr = ThisWorkbook.FullName
If CheckUrl(NewFileUrl) = False Then '如果没有在升级网址找到当前版本,那么说明有新版本
For i = Vers To Vers + 50 '继续查找新版本号,为了节省时间,所以只从当前版本号开始向上推50个版本号,如果超过50个版本都没升过级,那你也不是经常用
NewFileUrl = UrlPath & i & FileName
If CheckUrl(NewFileUrl) = True Then
NewVers = i
Exit For '如果找到新的程序文件了就退出查找
End If
Next
If NewVers > Vers Then '此条件说明找到有新版本
If MsgBox("检测到有新版本,是否立即升级?", vbYesNo + vbInformation, "升级") = vbNo Then Exit Sub
ThisWorkbook.ChangeFileAccess xlReadOnly '设为只读后才可对原旧文件进行操作
'Kill PathStr'最好不要删除文件,升级成功后让用户自己手动删除,这里采用改名法,不然会重名错误
Name PathStr As ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xls", "") & "(原文件).xls"
DownOk = URLDownloadToFile(0, NewFileUrl, PathStr, 0, 0) '下载的文件以原旧文件命名
Call DeleteUrlCacheEntry(NewFileUrl) '用这个删除缓存中下载的新程序文件,可以不要
MsgBox "升级成功"
ThisWorkbook.Close False '关闭文件,当然您可以不关而进行下面转移数据的工作
'这里加入复制旧文件的数据到新文件中的代码,如果EXCEL程序与其数据是分开存放的,则更好
End If
End If
End Sub
Sub Issue() '发布新版本,程序发布者专用,将生成的新文件放到下载目录里,必须删除旧文件
With ThisWorkbook
.BuiltinDocumentProperties("Category").Value = Val(.BuiltinDocumentProperties("Category").Value) + 1 & "为当前版本号"
.Save
.ChangeFileAccess xlReadOnly
Name ThisWorkbook.FullName As ThisWorkbook.Path & "\" & Val(ThisWorkbook.BuiltinDocumentProperties("Category").Value) & "我的程序名.xls"
MsgBox "发布成功"
.Close False
End With
End Sub
转自Jack.zhou.xmzdy@qq.com
分享到:
相关推荐
在众多版本中,“Windows 10 Upgrade 9252”是一个重要的里程碑,它在Windows 10的发展历程中占据着特殊的地位。这一版本不仅引入了多项新功能,还修复了前一版本存在的问题,旨在为用户提供更加稳定和流畅的操作...
"Linux刷机工具upgrade_tool"是Rockchip为这些设备提供的一个专用软件,用于更新或升级设备的操作系统。这个工具是Linux系统下的,意味着它专门设计在Linux环境下运行,帮助用户方便地对基于Rockchip处理器的设备...
Windows10Upgrade9252.exe
Linux_Upgrade_Tool_v1.2.tar.gz是一个压缩包,其中包含了这个升级工具的全部组件。在本文中,我们将深入探讨Linux升级工具的各个方面,包括其工作原理、使用场景、操作步骤以及与Linux系统升级相关的知识。 首先,...
在本文中,我们将深入探讨如何使用`upgrade_tool`来更新Nanopi-Neo4开发板上的软件,特别是在基于Android 8.1的系统环境中。Nanopi-Neo4是一款流行的开源硬件开发平台,广泛用于物联网(IoT)项目和嵌入式系统开发。...
《VBUC.7.0 Visual Basic Upgrade Companion:VB代码向vb.net的自动化迁移之路》 在软件开发领域,随着技术的不断进步,编程语言也在持续更新。Visual Basic(VB)作为早期广泛使用的编程语言,随着时间的推移,...
upgrade文件
中兴B860AV2.1-T刷机固件包,下载固件 a ml_upgrade_package.img 本人花钱购买学习测试有效
《构建升级脚本的艺术——深入理解`make_upgrade_script`》 在IT行业中,软件更新与维护是不可或缺的一环,而有效的升级脚本则是确保这一过程顺利进行的关键工具。`make_upgrade_script`,这个看似简单的名字背后,...
RK27Upgrade_v2.6.4
在某些情况下,当 Nginx 配置不当,尤其是 `Connection` 字段设置为 `Upgrade` 时,可能会导致 Kestrel(ASP.NET Core 的内置 web 服务器)返回 400 错误。这个问题通常与 WebSocket 协议升级有关。 WebSocket 是一...
Visual Basic Upgrade Companion
本文将深入探讨如何通过"upgrade_ssh.zip"这个压缩包来升级CentOS系统的OpenSSL,以及与之相关的openssl-fisp和OpenSSH。 首先,OpenSSL是一个强大的安全工具包,它包含了各种加密算法、证书处理功能以及用于实现...
Visual Basic Upgrade Companion License File
RK27Upgrade_v2.5(Single)
《Cisco网络设备升级工具——Aironet AP to LWAPP Upgrade Tool详解》 在现代网络环境中,Cisco设备,如路由器、交换机、接入点(AP)和无线局域网控制器(WLC),扮演着至关重要的角色。为了确保网络的稳定性和...
《Xhorse Upgrade Kit Software 固件更新工具详解》 Xhorse Upgrade Kit Software 是一款专为Xhorse品牌的各种工具设计的固件更新软件,主要用于提升这些工具的性能和修复潜在问题。这款工具覆盖了Xhorse品牌旗下的...
《PyPI官网下载 | plone.app.upgrade-1.1.3.tar.gz——Python库升级神器》 在Python的世界里,PyPI(Python Package Index)是最重要的软件仓库,它为全球开发者提供了海量的Python库,方便他们管理和分享自己的...
"大华UpgradeTool"是一款专为大华品牌的监控摄像机设计的工具,其主要功能是帮助用户方便地查找、获取在线监控摄像机的IP地址及相关信息,并实现远程升级。这款工具在IT行业内对于管理和维护大华监控系统具有重要的...