前言
按键精灵如果没有检测更新功能,当脚本有改动就无法及时通知到用户,所以这篇文章就介绍一下如何为脚本增加检测更新功能
介绍
增加检测更新功能需要一个稳定的网页来放置更新信息,这个网页所在的网站并不一定非要是你的,如果能保证贴吧帖子不被删,在贴吧开个帖子也能用
当然如果自己有一个网站当然是最好的,我这里就直接在本站开了一个页面,专门用来放置更新信息https://www.wmjrc.com/quickmacro_update.html
下面是检测更新部分的代码
Import "ShanHai.lua" Dim x,vnew,vnow,code,ScreenX,ScreenY ScreenX = GetScreenX() ScreenY = GetScreenY() vnow = 1.09 code = URL.Get("https://www.wmjrc.com/quickmacro_update.html") x = InStr(1,code,"最新版本号:") x = x + 18 vnew = Mid(code, x, 6) If CSng(vnew) > vnow Then ShowMessage "有新版本,请前往下载", 3000, ((ScreenX / 2) - 200), (ScreenY / 2) Delay 2000 ShanHai.openweb("www.wmjrc.com/quickmacro_update.html") Else ShowMessage "当前已是最新版本", 3000, ((ScreenX / 2) - 200), (ScreenY / 2) Delay 2000 End If
然后是包含注释的代码截图
代码原理就是在一个网页上放置更新信息,然后获取网页源码,再通过字符串搜索找出最新版本号,所以说在贴吧发帖放置更新信息也是可行的
这段代码还是挺简单的,最关键最容易出错的地方就是从网页获取最新版本并比较当前版本,需要算好字符串的长度,否则后面转换为浮点数时会出现返回 null 的情况
考虑更新日志放到网页上更方便,所以这段代码没有做成直接下载文件的形式,而是访问网页,然后由用户点击下载,当然你也可以改成直接下载
4 月 14 日更新
发现上面代码没有考虑到更新网页故障的情况,当网页打不开时最新版本返回为空,这样再去和当前版本比较就会报错
所以我们还需要增加一个判断语句,判断最新版本返回值是否为空,然后再去比较
IF 语句修改如下
vnew = Csng(vnew) If vnew = null Then ShowMessage "当前已是最新版本", 3000, ((ScreenX / 2) - 200), (ScreenY / 2) Delay 2000 ElseIf vnew > vnow Then ShowMessage "有新版本,正在前往下载", 3000, ((ScreenX / 2) - 200), (ScreenY / 2) Delay 2000 ShanHai.openweb("www.wmjrc.com/quickmacro_update.html") Else ShowMessage "当前已是最新版本", 3000, ((ScreenX / 2) - 200), (ScreenY / 2) Delay 2000 End If