关于异步下载,使用 XMLHttp也好,WINHttp也好,都有成功案例。这里介绍另一种技术:使用 .NET FrameWork 的 System.Net.WebClient 实现下载。
这里借助的第三方为开源的 wwDotNetBridge。需要中文版详细文档的可以直接联系本文作者/译者,收费提供。
VFP可以调用的.NET--加菲猫注
示例1:同步下载:
CLEAR
DO wwDotNetBridge
Public loBridge as wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4")
loClient = loBridge.CreateInstance("System.Net.WebClient")
lcUrl = "下载的 URL 地址"
lcLocalPath = "带有完整路径的文件名"
loClient.DownloadFile(lcUrl, lcLocalPath)
示例2:“伪”异步下载
CLEAR
DO wwDotNetBridge
Public loBridge as wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4)
loClient = loBridge.CreateInstance("System.Net.WebClient")
PUBLIC loCallback
loCallback = CREATEOBJECT("MyCallback")
lcUrl = "下载的 URL 地址"
lcLocalPath = "带有完整路径的文件名"
loBridge.InvokeMethodAsync(loCallback,loClient,"DownloadFile",lcUrl, lcLocalPath)
DOEVENTS
Read EVENTS
loClient.Dispose()
DEFINE CLASS MyCallback as AsyncCallbackEvents
FUNCTION OnCompleted(lvResult,lcMethod)
? "Success: " + lcMethod,lvResult
Clear Events
ENDFUNC
FUNCTION OnError(lcMessage,loException,lcMethod)
? "Error: " + lcMethod,lcMessage
Clear Events
ENDFUNC
ENDDEFINE
示例3:异步下载
CLEAR
DO wwDotNetBridge
Public loBridge as wwDotNetBridge
loBridge = CreateObject("wwDotNetBridge","V4")
loClient = loBridge.CreateInstance("System.Net.WebClient")
loHandler = CREATEOBJECT("DownloadEventHandler")
loSubscription = loBridge.SubscribeToEvents(loClient, loHandler)
lcUrl = "下载的 URL 地址"
loUrl = loBridge.CreateInstance("System.Uri", lcUrl)
lcLocalPath = "带有完整路径的文件名"
loClient.DownloadFileAsync(loUrl, lcLocalPath)
DOEVENTS
Read EVENTS
loSubscription.Unsubscribe()
loClient.Dispose()
DEFINE CLASS DownloadEventHandler as Custom
FUNCTION OnDownloadProgressChanged(sender, e)
? "下载进度:" + TRANS(loBridge.GetProperty(e,"ProgressPercentage")) + "%"
ENDFUNC
FUNCTION OnDownloadFileCompleted(sender, e)
? "下载成功"
Clear Events
ENDFUNC
ENDDEFINE
新款红包封面
猫猫的心里话
加菲猫的VFP|狐友会社群接收投稿啦
加菲猫的VFP,用VFP不局限VFP,用VFP混合一切。无论是VFP,还是JS,还是C,只要能混合起来,都可以发表。
商业模式,销售技巧、需求规划、产品设计的知识通通可以发表。
暂定千字50元红包,,优秀的文章红包更大,一经发表,红包到手。
如何帮助使用VFP的人?
用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。
我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。
加菲猫的vfp倡导用"VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发"。
我已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。
2024年狐友会社群会员继续招募中
社群会员获取的权益有:
祺佑三层开发框架商业版(猫框),终身免费升级,终身技术支持。
开放的录播课程有:
微信小程序,微信公众号开发,H5 APP开发,Extjs BS开发,VFP面向对象进阶,VFP中间层开发。
源码类资源有:
支付组件源码,短信源码,权限组件源码,一些完整系统的源码。这个可以单独出售的,需要的可以联系我。
会员也可以实现群内资源对接,可以接分包,合作等各项商业或技术业务