1. 易语言制作的软件怎么实现自动更新最好把源码发下。
你好,这个问题很好解决的。
首先需要一个FTP虚拟空间,或者一台外网远程服务器,用来判断当前版本是否为最新。
类似这样的源码网上有很多。
请直接网络搜索“易语言自动更新源码” 即可找到许多例程,PS:搜索出来的第二个、第三个都是你想要的源码哦。
希望我的回答对你有所帮助!Kiss灬小猪
2. 要易语言自动更新源码
要易语言自,动更新源码?(这个,你去找吴涛要要看,不知道他给你不……)
要自动更新,易语言源码?(这个……进度下载模块,写成DLL更新的时候调用你自己研究去吧)
———————————————我是分割线《念青&卓越》———————————————
.版本2
.程序集程序集1
.子程序_启动子程序,整数型,,请在本子程序中放置易模块初始化代码
_临时子程序() '在初始化代码执行完毕后调用测试代码
返回(0) '可以根据您的需要返回任意数值
.子程序_临时子程序
'本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。***注意不要修改本子程序的名称、参数及返回值类型。
.子程序下载进度事件模板,,公开
.参数下载文件名,文本型
.参数文件尺寸,整数型,,Bit
.参数下载速度,整数型,,KB/S
.参数下载进度,整数型
.子程序下载状态事件模板,,公开
.参数欲读入网址,文本型
.参数错误代码,整数型
.参数状态文本,文本型
.参数下载进度,整数型
———————————————我是分割线《念青&卓越》———————————————
.版本2
.程序集HTTP进度下载类,,公开
.程序集变量XML对象,对象
.程序集变量已初始化,逻辑型
.程序集变量集_欲读入网址,文本型
.程序集变量集_引用页,文本型
.程序集变量集_数据块超时,整数型
.程序集变量集_错误信息,文本型
.程序集变量集_保存文件名,文本型
.程序集变量状态_开始下载,逻辑型
.程序集变量集_已下载尺寸,整数型
.程序集变量集_下载进度事件指针,整数型
.程序集变量集_下载状态事件指针,整数型
.程序集变量集_文件总尺寸,整数型
.程序集变量集_停止,逻辑型
.程序集变量集_数据块尺寸,整数型
.子程序_销毁,,,当基于本类的对象被销毁前,此方法会被自动调用
清除()
.子程序清除,,公开,清空HTTP下载类
停止下载()
XML对象.清除()
连续赋值(假,已初始化,状态_开始下载,集_停止)
连续赋值(0,集_数据块超时,集_已下载尺寸,集_下载进度事件指针,集_下载状态事件指针,集_文件总尺寸,集_数据块尺寸)
连续赋值(“”,集_保存文件名,集_错误信息,集_引用页,集_欲读入网址)
.子程序初始化,逻辑型,公开,当基于本类的对象被创建后,此方法会被自动调用
.参数下载进度事件指针,子程序指针,可空
.参数下载状态事件指针,子程序指针,可空
.判断开始(已初始化=假且状态_开始下载=假)
XML对象.创建(“MSXML2.ServerXMLHTTP”,)
.判断开始(XML对象.是否为空())
返回(假)
.默认
已初始化=真
状态_开始下载=假
集_下载进度事件指针=到数值(下载进度事件指针)
集_下载状态事件指针=到数值(下载状态事件指针)
集_文件总尺寸=0
集_停止=假
集_数据块尺寸=#数据块尺寸
集_数据块超时=集_数据块尺寸÷#最低网速
返回(真)
.判断结束
.默认
返回(假)
.判断结束
.子程序置缓冲区尺寸,,公开,如果不用本方法设置缓冲区大小,将默认为10KB。不要过小,太小了会因读写次数增多而影响速度;过大了则等待数据的时间会过长;应根据网络状态合理设置。
.参数缓冲区尺寸,字节型,,单位为KB
.如果真(已初始化且状态_开始下载=假)
.如果真(缓冲区尺寸=0)
缓冲区尺寸=4
.如果真结束
集_数据块尺寸=缓冲区尺寸×1024
集_数据块超时=集_数据块尺寸÷#最低网速
.如果真结束
.子程序Http网址,,公开
.参数欲读入网址,文本型
.参数引用页,文本型,可空
.如果真(已初始化且状态_开始下载=假)
集_欲读入网址=欲读入网址
集_引用页=引用页
.如果真结束
.子程序置保存文件名,逻辑型,公开
.参数文件名,文本型
.如果真(已初始化且状态_开始下载=假)
集_保存文件名=文件名
返回(真)
.如果真结束
返回(假)
.子程序开始下载,逻辑型,公开
.局部变量字节集数据,字节集
.局部变量数据块开始下载时间,整数型
.局部变量文件号,整数型
.局部变量网页文件读写及尺寸信息,文本型
.局部变量temp,整数型
.局部变量当前读写位置,整数型
.局部变量下载速度,整数型
.局部变量已下载的百分比,整数型
.局部变量集_下载起点,整数型
.局部变量status,整数型
.如果真(已初始化=假)
集_错误信息=“没有初始化”
发送状态事件()
返回(假)
.如果真结束
.如果真(状态_开始下载)
集_错误信息=“正在下载中……”
发送状态事件()
返回(假)
.如果真结束
文件号=打开文件(集_保存文件名,#改写,#禁止读写)
.如果真(文件号=0)
集_错误信息=“本地文件无法打开”
发送状态事件()
返回(假)
.如果真结束
集_下载起点=取文件长度(文件号)
集_已下载尺寸=集_下载起点
移到文件尾(文件号)
状态_开始下载=真
集_错误信息=“”
集_停止=假
.循环判断首()
XML对象.方法(“open”,“GET”,集_欲读入网址,真)
XML对象.方法(“setRequestHeader”,“Referer”,集_引用页)
XML对象.方法(“setRequestHeader”,“Accept”,“*/*”)
XML对象.方法(“setRequestHeader”,“User-Agent”,“Mozilla/4.0(compatible;MSIE5.00;Windows98)”)
XML对象.方法(“setRequestHeader”,“Range”,“bytes=”+到文本(集_下载起点)+“-”+到文本(集_下载起点+集_数据块尺寸-1))
XML对象.方法(“setRequestHeader”,“Content-Type”,“application/octet-stream”)
XML对象.方法(“setRequestHeader”,“Pragma”,“no-cache”)
XML对象.方法(“setRequestHeader”,“Cache-Control”,“no-cache”)
XML对象.方法(“send”,)
数据块开始下载时间=取启动时间()
.判断循环首(XML对象.读数值属性(“readyState”,)≠4)
.如果真(取启动时间()-数据块开始下载时间>集_数据块超时)
XML对象.方法(“abort”,)
集_错误信息=“数据下载超时,建议重试。”
关闭文件(文件号)
发送状态事件()
清除下载信息()
返回(假)
.如果真结束
.如果真(集_停止)
集_错误信息=“用户中止了下载”
关闭文件(文件号)
发送状态事件()
清除下载信息()
返回(假)
.如果真结束
XML对象.逻辑方法(“waitForResponse”,1000)
.判断循环尾()
'检测状态
status=XML对象.读数值属性(“status”,)
.如果真(status>299且status≠416) 'http出错
集_错误信息=XML对象.读文本属性(“statusText”,)
跳出循环()
.如果真结束
.如果真(status≠206且status≠416) '服务器不支持断点续传
集_错误信息=“服务器不支持断点续传!”
跳出循环()
.如果真结束
写出字节集(文件号,XML对象.读属性(“responseBody”,).取字节集())
网页文件读写及尺寸信息=XML对象.文本方法(“getResponseHeader”,“Content-Range”)
.判断开始(网页文件读写及尺寸信息=“”)
集_错误信息=“文件长度未知!”
.默认
.如果真(集_文件总尺寸=0)
集_文件总尺寸=到数值(取文本右边(网页文件读写及尺寸信息,取文本长度(网页文件读写及尺寸信息)-倒找文本(网页文件读写及尺寸信息,“/”,,假)))
.如果真结束
当前读写位置=到数值(取文本右边(网页文件读写及尺寸信息,取文本长度(网页文件读写及尺寸信息)-倒找文本(网页文件读写及尺寸信息,“-”,,假)))
集_已下载尺寸=集_已下载尺寸+当前读写位置-集_下载起点
.如果真(集_已下载尺寸>集_文件总尺寸)
集_已下载尺寸=集_文件总尺寸
.如果真结束
集_下载起点=当前读写位置+1
已下载的百分比=集_已下载尺寸×100÷集_文件总尺寸
.判断结束
temp=取启动时间()-数据块开始下载时间
下载速度=集_数据块尺寸÷1.024÷temp
.如果真(集_下载进度事件指针≠0)
CallWindowProc(集_下载进度事件指针,集_保存文件名,集_文件总尺寸,下载速度,已下载的百分比)
.如果真结束
.如果真(集_文件总尺寸=集_已下载尺寸)
集_错误信息=“下载完毕”
跳出循环()
.如果真结束
.如果真(status=416)
集_错误信息=“下载完毕”
跳出循环()
.如果真结束
.循环判断尾(集_停止=假)
关闭文件(文件号)
发送状态事件()
清除下载信息()
返回(集_错误信息=“下载完毕”)
.子程序清除下载信息
连续赋值(假,状态_开始下载,集_停止)
连续赋值(0,集_已下载尺寸,集_文件总尺寸)
.子程序发送状态事件
.如果真(集_下载状态事件指针≠0)
CallWindowProc2(集_下载状态事件指针,集_欲读入网址,XML对象.读数值属性(“status”,),集_错误信息,集_已下载尺寸×100÷集_文件总尺寸)
.如果真结束
.子程序停止下载,,公开
.如果真(状态_开始下载)
集_停止=真
XML对象.方法(“abort”,)
.如果真结束
———————————————我是分割线《念青&卓越》调用系统API—————————
.版本2
.DLL命令CallWindowProc,整数型,"user32.dll","CallWindowProcA"
.参数程序指针,整数型
.参数下载文件名,文本型,传址
.参数文件尺寸,整数型
.参数下载速度,整数型
.参数下载进度,整数型
.DLL命令CallWindowProc2,整数型,"user32.dll","CallWindowProcA"
.参数程序指针,整数型
.参数欲读入网址,文本型,传址
.参数状态代码,整数型
.参数状态文本,文本型
.参数下载进度,整数型
———————————————我是分割线《念青&卓越》常量—————————————
.版本2
.常量数据块尺寸,"10240",,10K/块
.常量最低网速,"0.1",,KB/S
实例效果:
效果不是很好。也可以直接替换源文件。不使用窗口后台静默下载等等等等……楼主自由发挥吧!<念青&卓越>
3. 帮写易语言自动更新源码
主程序
改后缀名为.dll
写个启动程序(也就是检查更新的。)加入一个本软件版本标识常量,
方法:
http读文件(“版本文本地址”)
如果(到文本(获得的版本)=常量的版本)
就
运行(”主程序.dll“)
否则就
http读文件(新版本地址)
也可用
URLDownloadToFileA
函数下载
'下载完成后才会返回
删除文件(以前文件)
如果更新的文件多
你最好打包成压缩文件
删除也用批处理文件。
执行(”批处理文件全局目录+文件名“)
写到文件(替换的目录,数据就是下载的数据)
如果是打包的多个文件,直接zip解压
到这个目录。
Q452327180
4. 易语言 强制自动更新源码
这个完全可以,给你个思路
首先判断本地的版本号是否与服务器版本号一样,不一样就更新
美有分,没心思写代码给你
5. 求易语言的自动下载更新源码,在线等!正确追加100
说说我做的思路:
我做的一个狩猎场的会员系统,网络环境是内网,开发初期就考虑到后续自动升级问题,所以加了这功能。针对你的情况,你需要开通一个空间,这个网上免费的有,用来存放你的升级文件,不过,看你说的“每次更新了都要再去下载”,应该是有这存放的地方,前提是必须是固定下载地址。升级文件做成自解压程序,再在空间里放一个文本文件,内容为最新的版本号,程序本地需有个配置文件,记录本地版本和升级程序存放地址。流程:打开软件,自动下载打开空间中的那个记录版本号的文本文件,读取最新版本号,再读取本地配置文件中的版本号,对比如果不一样,则运行升级程序,退出主程序,升级程序根据配置文件中的升级包地址下载升级包,运行升级包,由于是自解压,则自动更新文件。在制作自解压升级包的时候需要设置下。详细不明的可以再问。
加我QQ:187326575
我这有用邮箱来更新的。只需要邮箱就行了,有新版本发个邮件(附件为更新文件)到设定邮箱,客户端会自动更新的。
6. 易语言怎么自动更新
用网络空间实现自动更新,直接上源码
7. 易语言怎么实现自动更新
我为了演示清除,就新建一个windos窗口程序。
在这个程序上画:一个按钮,这个按钮到时候用来自动更新
四个标签,用来说明版本。如图
我们现在进入到网络空间,点击“写文字”
文字内容便照图中排版,记得换行哦!
发布该文字成功后,进入到该文字的界面,复制该文字的地址
回到编程软件中,我们新建一个叫文本型的“源码”全局变量
我们在启动窗口上双击,自动生成一个叫“__启动窗口_创建完毕”的子程序,我这里是为了演示效果才创建的这个程序,你实际运用中可以不这样编写!
在该程序下面编写代码:
源码=编码_utf8到gb2312 (到文本 (HTTP读文件 (“之前复制的地址”)))
意思是,把之前在空间复制的那个地址的网站源码赋值给文本型“源码”变量。
我们回到发布的文字网页上,在网页的空白处单击鼠标右键---->查看网页源码。
在源码文件中找到“最新版本”那几个字,我们来取“最新版本”后面的2.0。
然后找到最新版本号后面那代码“</p>”。
因为精易模块取出中间文本这个命令需要得到要取出内容的前后文本,所以我们找到2.0前后的文本。
我们把最新的版本号获取到之后输出到标签4的标题中来,
找到后,在易语言中编写以下代码:
标签4.标题 = 文本_取出中间文本 (源码, “最新版本:”, “</p>”)
以上代码就会取出“最新版本:”和“</p>”之间的“2.0”啦!
调试一下,查看是否能正常获取到网站的源码并取出想要得到内容。
获取到版本号之后,接下来我们编写自动更新。
8. 跪求易语言检查更新或自动更新源码!
更新源码没有,不过有原理。
1、在自己做的软件做一个标记,现版本是多少。
2、有信息服务器。
3、在主程序每次启动的时,连接服务器获得信息。(注意:服务器端的路由器一定要留端口,需要在路由器上设置。)
4、获得信息,判断是否为最新版本,如果否,启动更新程序,更新程序启动秒后延迟几结束主程序。
5、下载指定服务器的更新文件,并且覆盖原主程序及系统文件。
以后的都很简单了,希望能给你带来帮助,然后,说一句。少看别人的源码,别人的东西始终是别人的东西。对于新手来说,少看别人的源码,不然你写出来的东西都是别人写过东西。如果是那样你觉得还有意义么?
9. 易语言自动更新下载文件
这个是代码,直接复制到易语言里就可以了,不过需要一个新浪微博,可以去注册。代码里有新浪微博文章的教程
.版本 2
.支持库 iconv
.支持库 internet
.支持库 spec
.支持库 iext
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.程序集变量 当前版本, 文本型
.子程序 __启动窗口_创建完毕
当前版本 = “1.0”
检查更新 ()
.子程序 检查更新
.局部变量 返回文本, 文本型
.局部变量 最新版本, 文本型
.局部变量 更新说明, 文本型
.局部变量 窗口标题, 文本型
.局部变量 分割的文本, 文本型, , "0"
.局部变量 i1, 整数型
返回文本 = 到文本 (编码转换 (HTTP读文件 (“http://blog.sina.com.cn/s/blog_1522415ce0102wei7.html”), #编码_UTF_8, #编码_GB18030, )) ' 这个是你的新浪微博文章的地址,如果不知道怎么写,可以去看看我的
返回文本 = 取中间内容 (返回文本, “////开始”, “////结束”)
调试输出 (返回文本)
最新版本 = 取中间内容 (返回文本, “最新版本=”, “</P>”)
调试输出 (最新版本)
.判断开始 (最新版本 = “”)
信息框 (“更新失效请联系作者”, 0, “”)
.默认
.如果真 (到数值 (最新版本) < 到数值 (当前版本))
信息框 (“当前版本为最新了”, 0, , )
返回 ()
.如果真结束
.如果真 (到数值 (最新版本) > 到数值 (当前版本))
.如果真 (信息框 (“当前版本:” + 当前版本 + #换行符 + “最新版本:” + 最新版本 + #换行符 + “更新内容:” + #换行符 + 透明标签1.标题, #是否钮, “是否下载最新版?”, ) = #是钮)
打开指定网址 (“www.360.com”) ' 这个是下载地址,如果要不打开下载的话,就添加一个超文本浏览框,让超文本浏览框的地址等于下载地址
' 例如:超文本框1.地址=“www.360.com”
销毁 ()
.如果真结束
.如果真结束
.判断结束
.子程序 取中间内容, 文本型, 公开
.参数 完整内容, 文本型
.参数 左边文本, 文本型
.参数 右边文本, 文本型
.局部变量 临时位置, 整数型
.局部变量 总长度, 整数型
.局部变量 临时文本, 文本型
总长度 = 取文本长度 (完整内容)
临时位置 = 寻找文本 (完整内容, 左边文本, , 假) + 取文本长度 (左边文本)
临时文本 = 取文本中间 (完整内容, 临时位置, 总长度)
总长度 = 取文本长度 (临时文本)
临时位置 = 寻找文本 (临时文本, 右边文本, , 假) - 1
临时文本 = 取文本中间 (临时文本, 1, 临时位置)
返回 (临时文本)