wdsjzd 发表于 2020-4-7 15:15:41

易语言如何下载网页的压缩包文件啊

我是用的HTTP读文件不希望复杂如果必须复杂请帮忙写一个模块(模块源码也要)

zip、rar这样的全部会显示格式错误QQ之类的下载器都是先下一个tmp好像请大神指教!

wdsjzd 发表于 2020-4-7 15:16:41

解压缩软件我用的360压缩

wdsjzd 发表于 2020-4-7 15:31:05

还有http读文件怎么查看进度啊

十万个为什么 发表于 2020-4-7 16:34:28




.版本 2
.支持库 internet

.程序集 Http进度下载, , , Win7、Win10都能用。

.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码

' ************************************************************
' 模块:易语言学习吧 www.eyy8.vip
' ************************************************************
.如果真 (安装回调 () = 假)
    信息框 (“    进度显示要编译后运行才行哦!”, 0 + 64, “提示”, )

.如果真结束

_临时子程序 ()' 在初始化代码执行完毕后调用测试代码
返回 (0)' 可以根据您的需要返回任意数值

.子程序 _临时子程序

' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。


.子程序 安装回调, 逻辑型, , BY: 空虚公子(E盾)
.局部变量 aaaa, 整数型
.局部变量 EIP, 整数型
.局部变量 内存属性, 内存属性
.局部变量 数据, 字节集
.局部变量 位置1, 整数型
.局部变量 hookcodeeip, 整数型
.局部变量 hookeip, 整数型
.局部变量 jmpeip, 整数型, 静态
.局部变量 callback, 整数型, 静态
.局部变量 tEIP, 整数型

EIP = GetEIP ()
VirtualQuery (EIP, 内存属性, 28)
数据 = 取空白字节集 (内存属性.区域地址 + 内存属性.区域长度 - 1000)
ReadProcessMemory (-1, 内存属性.区域地址, 数据, 内存属性.区域地址 + 内存属性.区域长度 - 1000, 0)
tEIP = 寻找字节集 (数据, { 139, 69, 220, 141, 85, 188, 82, 80, 86, 83, 255, 215, 133, 192, 116, 153, 139, 69, 188, 133, 192, 117, 9, 199, 69, 200, 1, 0, 0, 0, 235, 137, 139, 77, 12, 80, 86 }, )
.如果真 (tEIP = -1)
    返回 (假)
.如果真结束
hookeip = 内存属性.区域地址 + tEIP + 31
jmpeip = hookeip + 5
hookcodeeip = VirtualAlloc (0, 100, 4096, 64)
callback = 到整数 (&进度回调)
写到内存 ({ 139, 77, 12, 96, 81 } + { 129, 237, 140, 0, 0, 0, 85 } + { 255, 21 } + 到字节集 (取整数指针地址 (callback)) + { 97, 80, 86, 255, 37 } + 到字节集 (取整数指针地址 (jmpeip)), hookcodeeip, )
VirtualProtect (hookeip, 5, 64, 0)
写到内存 ({ 233 } + 到字节集 (到整数 (hookcodeeip - (hookeip + 5))), hookeip, )
返回 (真)

.子程序 取整数指针地址, 整数型
.参数 参数_整数, 整数型, 参考

置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
返回 (0)

.子程序 GetEIP, 整数型
.局部变量 地址, 整数型

置入代码 ({ 139, 133, 4, 0, 0, 0, 129, 232, 5, 0, 0, 0, 137, 133, 252, 255, 255, 255 })
返回 (地址)

.子程序 进度回调
.参数 文件长度, 文本型, , ebp-0x8c
.参数 ecx, 整数型
.局部变量 当前已下载长度, 整数型
.局部变量 数据, 字节集

数据 = 取空白字节集 (4)
ReadProcessMemory (-1, ecx + 16, 数据, 4, 0)
当前已下载长度 = 取字节集数据 (数据, #整数型, )
百分比 = 到整数 (当前已下载长度 ÷ 到整数 (文件长度) × 100)
处理事件 ()



.子程序 Http下载开始, , 公开, 请在开始下载前设置好时钟周期。
.参数 文件下载地址, 文本型
.参数 文件保存地址, 文本型
.局部变量 读取的数据, 字节集

读取的数据 = HTTP读文件 (文件下载地址)
写到文件 (文件保存地址, 读取的数据)

.子程序 Http进度返回, 整数型, 公开, 放到时钟周期事件里。Http进度都是只显示到99%,自己再判断将其变成100%。

返回 (百分比)




wdsjzd 发表于 2020-4-10 10:02:33

十万个为什么 发表于 2020-4-7 16:34
.版本 2
.支持库 internet



能不能帮我写个下载压缩包的模块

十万个为什么 发表于 2020-4-10 11:21:57

wdsjzd 发表于 2020-4-10 10:02
能不能帮我写个下载压缩包的模块

这个编译出来就是模块啊。

yyz860723 发表于 2021-5-29 00:20:18

楼主发贴辛苦了,谢谢楼主分享!我觉得易语言吧是注册对了!
页: [1]
查看完整版本: 易语言如何下载网页的压缩包文件啊