TC官方合作论坛

标题: 求高手指点,能用dllcall+Urlmon或winInet写出HTTP下载.exe文件吗? [打印本页]

作者: hantianxue    时间: 2018-7-6 01:46
标题: 求高手指点,能用dllcall+Urlmon或winInet写出HTTP下载.exe文件吗?
本帖最后由 hantianxue 于 2018-7-6 20:40 编辑

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

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

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

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

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

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

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

InternetReadFile获取到的是buffer数据,

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

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

有大神可以指点一下吗?


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




作者: chen1882729    时间: 2018-7-6 10:04
本帖最后由 chen1882729 于 2018-7-6 10:06 编辑

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



支持获取:
支持断点续传

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

作者: hantianxue    时间: 2018-7-6 20:29
chen1882729 发表于 2018-7-6 10:04
365插件可以显示下载速度,可以断点下载

感谢回复,关于365插件。

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

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

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

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

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

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

所以目前还是考虑自己写一个下载功能。




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1