|
.版本 2
.支持库 xplib
.支持库 shellEx
.支持库 internet
.支持库 spec
.支持库 dp1
.支持库 shell
.子程序 __启动窗口_创建完毕
.局部变量 新版本号, 字节集
.局部变量 新程序, 字节集
.局部变量 版本说明, 文本型
XP风格 (3)
_启动窗口.宽度 = 按钮_解决异常.左边 + 按钮_恢复网络.宽度 + 15
标签版本号.标题 = 到文本 (#当前版本号)
注册热键 (取窗口句柄 (), 标签1.取窗口句柄 (), 1, #L键)
.如果真 (通信测试 (“my4899.sinaapp.com”, 1000) ≠ -1)
新版本号 = HTTP读文件 (“http://my4899.sinaapp.com/update.txt”)
.如果 (到文本 (#当前版本号) ≠ 到文本 (新版本号)) ‘ —————————————————— 判断当前系统版本是否为最新,
版本说明 = 到文本 (HTTP读文件 (“http://my4899.sinaapp.com/shuoming.txt”))
.如果真 (信息框 (“检测到新版本,” + 版本说明 + “,是否升级?”, #是否钮, “有新版本!”) = #是钮)
删除文件 (取运行目录 () + “\” + “up_x” + 取执行文件名 ()) ‘ —————————— 如果不是最新版本,删除当前目录中文件名前带“up_x”的同名文件,此文件为“更新文件”
新程序 = HTTP读文件 (“http://my4899.sinaapp.com/ff.exe”) ‘ ——————————————— 下载最新的更新文件
延迟 (1000) ‘ 延迟1秒,后再进行更新文件MD5值核对,确保下载文件准确性
.如果 (到文本 (HTTP读文件 (“http://my4899.sinaapp.com/md5.txt”)) = 取数据摘要 (新程序)) ‘ 从网络上取出更新文件的MD5值,然后与刚下载的文件MD5值进行比较
写到文件 (取运行目录 () + “\” + “up_x” + 取执行文件名 (), 新程序) ‘ ———— 保存更新文件,取出当前执行的文件名,在文件明前增加“up_x”作为“更新文件”的标记
延迟 (1000) ‘ ——————————————————————————————————-延迟1秒,给出充足的时间保存文件,确保保存文件准确性
.如果 (取数据摘要 (读入文件 (取运行目录 () + “\” + “up_x” + 取执行文件名 ())) = 取数据摘要 (新程序)) ‘ 用下载的文件MD5值和保存的文件MD5值进行对比,确保更新文件的准确性
执行 (, “up_x” + 取执行文件名 (), , , ) ‘ —————————————————— 执行当前文件名前面标记为“up_x”的“更新程序”
_启动窗口.销毁 () ‘ ————————————————————————————-—— 关闭当前执行的文件,以便等待更新
.否则
.如果真 (信息框 (“更新失败!软件将重新启动!”, #错误图标 + #重试取消钮, “更新失败!”) = #重试钮) ‘ 更新失败弹出信息框,根据是否重试更新,进行操作
执行 (, 到文本 (取执行文件名 ()), , , ) ‘ ——————————————————-—说明在下面
_启动窗口.销毁 () ‘ ————————————————————————————-——这两句代码是,重新启动当前程序,尝试再次更新
.如果真结束
.如果结束
.否则
.如果真 (信息框 (“更新失败!软件将重新启动!”, #错误图标 + #重试取消钮, “更新失败!”) = #重试钮) ‘ 更新失败弹出信息框,根据是否重试更新,进行操作
执行 (, 到文本 (取执行文件名 ()), , , ) ‘ —————————————————————— 说明在下面
_启动窗口.销毁 () ‘ —————————————————————————————————这两句代码是,重新启动当前程序,尝试再次更新
.如果真结束
.如果结束
.如果真结束
.否则
.如果 (取文本左边 (取执行文件名 (), 4) = “up_x”) ‘ ———————————————— 如果是新版本,判断当前执行的程序是“正式程序”还是“更新程序(文件名前带up_x的)”
运行 (“TASKKILL /F /IM ” + 取文本右边 (取执行文件名 (), 取文本长度 (取执行文件名 ()) - 4), 真, 1) ‘ 执行一个DOS命令,删除正在运行的“原正式程序”
删除文件 (取文本右边 (取执行文件名 (), 取文本长度 (取执行文件名 ()) - 4)) ‘ ————删除“原正式程序”,以便复制新的“正式程序”
复制文件 (取执行文件名 (), 取文本右边 (取执行文件名 (), 取文本长度 (取执行文件名 ()) - 4)) ‘ 复制下载的更新文件为“新的正式程序”
延迟 (1000) ‘ ———————————————————————————————————-延迟1秒,给成功复制文件留时间
执行 (, 取文本右边 (取执行文件名 (), 取文本长度 (取执行文件名 ()) - 4), , , ) ‘ ——执行“新正式程序”
_启动窗口.销毁 () ‘ ————————————————————————————————-文件名前标有up_x的“更新程序”自我关闭
.否则
延迟 (1000) ‘ ———————————————————————————————————-延迟1秒,给足时间完成带up_x的“更新程序”自我关闭,既“新正式程序”运行后,可以删除带up_x的“更新程序”
运行 (“TASKKILL /F /IM ” + “up_x” + 取执行文件名 (), 真, 1) ‘ ————————-再次运行一次结束“更新程序”的命令
删除文件 (取运行目录 () + “\” + “up_x” + 取执行文件名 ()) ‘ —————————删除带up_x的“更新程序”
.如果结束
.如果结束
新程序 = 到字节集 (“”)
新版本号 = 到字节集 (“”)
.如果真结束
E-铅笔(1648641632) 小狸S 17:10
泥鳅
|
|