TC官方合作论坛

 找回密码
 立即注册
查看: 1663|回复: 2

[问题] 求高手指点,能用dllcall+Urlmon或winInet写出HTTP下载.exe文件吗?

[复制链接]
发表于 2018-7-6 01:46:22 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 hantianxue 于 2018-7-6 20:40 编辑

在做一个实例,因为是从国外网站下载文件,库中自带的HTTP下载,有点太慢了,而且也无法获取当前的下载进度,速度之类的数据。

虽然还有插件可以选择,但是本着学习和提高的目的不选择使用插件。

所以在想能不能用dllcall配合Urlmon.dll自写一个能显示状态的下载功能。

但是搞不明白如何调用IBindStatusCallback的函数。

如果TC无法正确的调用IBindStatusCallback的话,

能否用dllcall配合winInet.dll写下载呢,

在我自己的尝试中发现无法解决的问题是:

InternetReadFile获取到的是buffer数据,

如果下载的是txt文件还好说,如果是其他类型的比如exe文件,

如何吧buffer数据保存为正确的本地文件呢?

有大神可以指点一下吗?


有参考源码最好,感激不尽。



回复

使用道具 举报

发表于 2018-7-6 10:04:47 | 显示全部楼层
本帖最后由 chen1882729 于 2018-7-6 10:06 编辑

365插件可以显示下载速度,可以断点下载



支持获取:
支持断点续传

异步下载
文件总大小
已加载大小
下载速度
下载状态
载进度
下载时间
预计完成时间
http://bbs.tyuyan.net/forum.php?mod=viewthread&tid=23726
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-6 20:29:42 | 显示全部楼层
chen1882729 发表于 2018-7-6 10:04
365插件可以显示下载速度,可以断点下载

感谢回复,关于365插件。

我的实例之前就是在使用365插件,虽然它很好的解决了状态获取,

但是极少数的用户出现了问题,

在过程中并没有在正确的路径生成文件,

而是在软件的工作路径下生成了名为:translate3d(99.9999999999999%,0,0) 之类的文件,

每次下载生成的文件名只是后面的数字不同,

因为是插件不知道具体源码,所以无法解决这个错误,

所以目前还是考虑自己写一个下载功能。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-6-17 10:26 , Processed in 0.046123 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表