xy6232415 发表于 2018-11-22 11:07

易语言软件自动更新替换软件本身

本帖最后由 xy6232415 于 2018-11-22 11:08 编辑

为了避免非零基础人群感到身体不适、头晕恶心、易怒及粗口,请不要查看以下内容
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑请不要无视黄色提示


最近自己做的公司小软件在同事间传得有点多,我一旦更新得局域网什么的重新发一遍文件给他们。


感觉很麻烦,就借鉴了相关资料。做了一个自动更新


原理大致如下:服务器获取最新信息==》比对版本号==》判断是否强制更新==》下载文件==》删除旧版文件==》自动打开新版本软件


废话不多说,上图开搞




IE缓存很严重,这一步必须要的,窗口启动的时候清除一波



这一步是检测版本更新,获取一些配置文件进行(强制)更新,版本更新的方法如下


利用web网页,截取字符串的形式,web构造如下


这个页面你可以放在任何可以存放文本的地方,微博,百度等等

然后就是进入到下载界面,开始参考了很多下载,都不是很满意,基本上不能替换自己本身。或者说压根没法下载
后面想到了以前写过的一款以前的软件生成器的源码。参考案例并开始动手了。



进入更新界面,定义下载参数,下载地址是我们开始在WEB上设置的地址,路径里的软件名字随意取,只要不是软件原本的名字就OK。



声明回调函数,并执行替换脚本


生成cmd的echo指令。关闭进程后,删除掉本身。再将下载的文件替换成原始文件名



教程到这就结束了。码字不易,麻烦大家给评下分。


后续大家想学什么内容,也可以留言,我有空就会出教程。
本次教程的源码在下边。包含web网页文件






夏亚阿滋纳布 发表于 2019-12-12 15:37

咨询下楼主,自动运行Bat时,首先断掉进程之后不会删除和改名只会运行当前的EXE。但是我手工运行Bat时候却能完美运行。请指教
.版本 2
.支持库 downlib

下载地址 = 删首尾空 (“*********”)
下载参数.类型 = #传送常量.下载
下载参数.文件地址 = 下载地址
下载参数.线程等待超时 = 1000
下载参数.默认线程数 = 5
下载参数.本地文件路径 = 取当前目录 () + “\HBMBLABLA1.exe.tmp”
下载参数.连接超时 = 5000
下载参数.发送超时 = 5000
下载参数.接收超时 = 10000
下载参数.接收大小 = 10240
下载参数.交互回调函数 = &交互回调函数
下载任务.增加新任务 (下载参数)

.子程序 替换新版

写到文件 (“update.bat”, 到字节集 (“@echo off” + #换行符 + “Taskkill /f /im ” + 取执行文件名 () + #换行符 + “Del ” + 取执行文件名 () + #换行符 + “ren ” + “HBMBLABLA1.exe.tmp ” + 取执行文件名 () + #换行符 + “start ” + 取执行文件名 () + #换行符 + “Exit”))
运行 (“update.bat”, 真, 1)
删除文件 (“update.bat”)
结束 ()

xy6232415 发表于 2019-10-21 09:49

要帅 发表于 2019-10-18 20:04
cmd 命令 没有错   偶尔会更新成功一次说明cmd没问题但更多的是重复楼上那张GIF里面的画面{:301_977: ...

你下载的文件名也要改成你的那个ys什么的

ytdzjun 发表于 2018-11-22 11:15

可以借鉴,之前用VB尝试做过类似设计。谢谢分享

565266718 发表于 2018-11-22 11:18

支持楼主。。。。

young24 发表于 2018-11-22 11:26

感谢分享

jackje 发表于 2018-11-22 11:42

可以借鉴学习一下

阿鸿故事 发表于 2018-11-22 11:43

支持一下自动更新不错   收藏备用!

msitoo 发表于 2018-11-22 11:48

感谢分享。

cube 发表于 2018-11-22 12:12

感觉有一点emmm,不对,可又说不出哪里不对!

chen4321 发表于 2018-11-22 12:14

谢谢分享

y3hk 发表于 2018-11-22 13:54

想复习一下易语言了,毕竟是国人的编程语言
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 易语言软件自动更新替换软件本身