<output id="os3gq"><ruby id="os3gq"></ruby></output>

    1. <mark id="os3gq"></mark>
    2. Access培訓
      網站公告
      ·Access快速平臺QQ群號:84825014    ·Access快速開發平臺下載地址及教程    ·歡迎添加微信交流賬號:AccessoftChu    ·如何快速搜索本站文章|示例|資料    
      您的位置: 首頁 > 技術文章 > SharePoint/Access互聯網

      一句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群 (群號:198348076)       access源碼網店

      最新評論 查看更多評論(4)

      2013/5/13 22:25:07何保辛
      你說說想要什么實例吧!

      2013/5/4 15:17:19aronliu
      希望多些ACCESS互聯網應用的實例

      2012/12/29 15:06:41輕風
      沒看明白

      2012/12/29 8:36:37金宇
      不錯,學習一下。

      發表評論您的評論將提升作者分享的動力!快來評論一下吧!

      用戶名:
      密 碼:
      內 容:
       

      常見問答

      技術分類

      相關資源

      最新帖子

      關于我們 | 服務條款 | 在線投稿 | 友情鏈接 | 網站統計 | 網站幫助