Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access365/SharePoint/互联网

一句VBA 下载上传网上文件

时 间:2012-12-29 01:37:50
作 者:dbaseIIIer   ID:22003  城市:深圳
摘 要:VBA既然是我们的快速开发工具,我们就要让工具为我们做事,别累了自己为打磨工具发愁! 借助开源的技术,我们就可以专心在我们的应用上面了!
正 文:

我已经玩了很多种方法了! 包括


1. MSXML2.xmlHttpRequest, xmlServerRequest 1.0- 6.0 (VBA暂时没办法 onreadyStateChange触发事件,微软说http://support.microsoft.com/kb/303322/zh-cn,测试了 VB还可以搞旁门方法实行,但VBA还不可以!)

2. webbrowser 控件

3. 调用 js

4. 调用 SWF( as3)


最后我选择这个方法的好处是:

1. 不占用 vba 资源,

2. 可以让系统调用多个CPU线程处理

3. 可以选择性适应 32位, 或 64位系统

4. 可以设定userAgent (ie 里的 js 里面可以,as3 不支持,Webbrowser不可以)

5. 已经帮我们把 gzip 网页  gunzip 了

6. 使用超级简单,功能超级全面,性能超级稳定!


为了不占用 VBA 进程,我访寻了多种调用的方法后,决定不用 ActiveX 控件!就是因为 VBA的限制!

也因为我开发的程序不能容易被破解,所以我选择了 Accde! 只能用 VBA 来运行!


我选了两个工具 来测试(这两个都是80年代黑客常用的工具之一),现在都是开源了十几年超高稳定性的运行器:
1. lynx 浏览器  http://lynx.isc.org/(70年代的 文本式浏览器,原来只有在Unix上军用的,后来被改成可以在60多个系统上运行,包括现在的Win7 64)

2. cURL  http://curl.haxx.se/(是命令行的 url 执行器,也是很多系统里面内置的命令,就Windows没有,php也内置了这套代码)


最后我使用的是 cURL,真的简单!

curl --url pt.3g.qq.com --dump-header header.txt --cookie-jar cookie.txt

这样就把 某个网页

- 拿到你本机的out.txt 文件;

- 把包含cookie保存了在 cookie.txt;

- 把header 保存在  header.txt !


你们就自己开发 不同的应用好了! 除了 http 协议,还可以支持 

 DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer 续传, proxy tunneling (代理隧道)


说了那么多好处,当然要数一下他的不好了!就是因为他是命令行的,所以跟你的程序的交互,都需要用 文件来交互所以

1. 不需要同步,但交互慢;

2. 命令行,要中途终止的话,就非常复杂;(每次都要 processid = shell() 来记住线程编号)


所以,总结就是这方法非常适合,

- 少量网页交互的应用;

- VBA 次数少,但单独文件大的 上下传;(至少线程分离,你的 Access 死掉都可以在续传!)



一句VBA 把 图片拿下的方法就是

processId=Shell( "curl --url http://www.baidu.com/img/baidu_jgylogo3.gif --output tmp.gif")





Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助