|

10精币
.版本 2
.支持库 EThread
.程序集 窗口程序集_更新窗口
.子程序 _更新窗口_创建完毕
启动线程 (&start, 0, )
.子程序 start
程序_延时 (1000)
启动线程 (&下载线程, 0, )
.子程序 下载线程
.参数 内存号, 整数型
.局部变量 url, 文本型
.局部变量 data, 文本型
.局部变量 getdata, 文本型
.局部变量 路径, 文本型
.局部变量 得到_文件号, 文本型
.局部变量 整数_文件号, 整数型
.局部变量 getlenth, 整数型
.局部变量 nowlenth, 整数型
.局部变量 fileSize, 整数型
.局部变量 s1, 整数型
.局部变量 s2, 整数型
.局部变量 strdata, 文本型
.局部变量 bidata, 字节集
.局部变量 fileName, 文本型
.局部变量 str, 文本型
.局部变量 文件名, 文本型
url = 服务器IP + “/download”
fileName = 软件名称 + “.exe”
getdata = 到文本 (网页_访问_对象 (url, 1, 编码_URL编码 (fileName, 真, 真)))
s1 = 寻找文本 (getdata, “文件号[”, , 假)
s2 = 寻找文本 (getdata, “]”, s1, 假)
得到_文件号 = 取文本中间 (getdata, s1 + 7, s2 - s1 - 7)
s1 = 寻找文本 (getdata, “长度[”, , 假)
s2 = 寻找文本 (getdata, “]”, s1, 假)
fileSize = 到整数 (取文本中间 (getdata, s1 + 5, s2 - s1 - 5))
.如果真 (fileSize = 0)
信息框 (“更新失败”, 0, “温馨提示”, )
结束 ()
.如果真结束
路径 = 取运行目录 () + “/temp.data”
整数_文件号 = 打开文件 (路径, #重写, #无限制)
nowlenth = 0
.判断循环首 (真)
data = fileName + “----” + 得到_文件号 + “----” + 到文本 (nowlenth) + “----开始”
bidata = 网页_访问_对象 (url, 1, 编码_URL编码 (data, 真, 真))
getlenth = 取字节集长度 (bidata)
.如果真 (getlenth = 0)
跳出循环 ()
.如果真结束
写出字节集 (整数_文件号, bidata)
nowlenth = nowlenth + getlenth
进度条1.位置 = nowlenth × 100 ÷ fileSize
.如果真 (nowlenth = fileSize)
跳出循环 ()
.如果真结束
.判断循环尾 ()
关闭文件 (整数_文件号)
data = fileName + “----” + 得到_文件号 + “----” + 到文本 (nowlenth) + “----完成”
网页_访问_对象 (url, 1, data)
str = “@echo off” + #换行符 + “Taskkill /f /im ” + 取执行文件名 () + #换行符 + “ping 127.0.0.1 -n 01>nul” + #换行符
文件名 = “temp.data”
str = str + “Del ” + 取执行文件名 () + #换行符 + “ping 127.0.0.1 -n 01>nul” + #换行符
str = str + “ren ” + 文件名 + “ ” + 取执行文件名 () + #换行符
str = str + “if EXIST ” + 取执行文件名 () + “ start ” + 取执行文件名 () + #换行符 + “Del %0” + #换行符 + “Exit”
写到文件 (“update1.bat”, 到字节集 (str))
运行 (“update1.bat”, 真, 1)
结束 ()
----------------------------------------------------------------
问题是有时候会下载出错 一直循环更新下载
|
|