精易论坛

标题: 更新下载 [打印本页]

作者: 神奇的哆啦A梦    时间: 2025-5-22 13:13
标题: 更新下载
  
子程序名返回值类型公开备 注
下载线程  
参数名类 型参考可空数组备 注
内存号整数型
变量名类 型静态数组备 注
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)
结束 ()





---------------------------------------------------------------------
问题是有时候更新会一直重复下载   

有没有哥哥  帮忙写个例子 或者 帮忙改改的

万分感谢。。



作者: 小磊哥来了    时间: 2025-5-22 13:34
你的程序无法实现版本更新和自动下载?开源文件下载程序
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14855775
(出处: 精易论坛)
可以参考下
作者: lufanjingyi    时间: 2025-5-24 20:31
我感觉你加一个得到的文件号和本地文件号对比就行了    如果不一致就更新   一致就跳过
作者: XunTr    时间: 2025-5-24 23:40
加个字段,取自身哈希值,对比云端哈希值,如果不对才触发下载
作者: 3484994855    时间: 2025-6-6 20:01
感谢分享,支持开源!!!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4