最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

易語言實現(xiàn)http下載斷點續(xù)傳功能的代碼

 更新時間:2018年11月30日 11:29:50   作者:易語言源碼教程  
今天小編就為大家分享一篇關于易語言實現(xiàn)http下載斷點續(xù)傳功能的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

DLL命令表

.版本 2
.DLL命令 InternetGetConnectedState, , "Wininet.dll", "InternetGetConnectedState"
  .參數(shù) lpdwFlags, 整數(shù)型, 傳址
  .參數(shù) dwReserved, 整數(shù)型
.DLL命令 InternetOpenA, 整數(shù)型, "Wininet.dll", "InternetOpenA"
  .參數(shù) lpszAgent, 文本型
  .參數(shù) dwAccessType, 整數(shù)型
  .參數(shù) lpszProxyName, 整數(shù)型
  .參數(shù) lpszProxyBypass, 整數(shù)型
  .參數(shù) dwFlags, 整數(shù)型
.DLL命令 InternetOpenUrlA, 整數(shù)型, "Wininet.dll", "InternetOpenUrlA"
  .參數(shù) hInternet, 整數(shù)型
  .參數(shù) lpszUrl, 文本型
  .參數(shù) lpszHeaders, 文本型
  .參數(shù) dwHeadersLength, 整數(shù)型
  .參數(shù) dwFlags, 整數(shù)型
  .參數(shù) dwContext, 整數(shù)型
.DLL命令 HttpQueryInfoA, 整數(shù)型, "Wininet.dll", "HttpQueryInfoA"
  .參數(shù) hRequest, 整數(shù)型
  .參數(shù) dwInfoLevel, 整數(shù)型
  .參數(shù) lpvBuffer, 整數(shù)型, 傳址
  .參數(shù) lpdwBufferLength, 整數(shù)型, 傳址
  .參數(shù) lpdwIndex, 整數(shù)型, 傳址
.DLL命令 InternetCloseHandle, , "Wininet.dll", "InternetCloseHandle"
  .參數(shù) handle, 整數(shù)型
.DLL命令 InternetReadFile, 整數(shù)型, "Wininet.dll", "InternetReadFile"
  .參數(shù) hFile, 整數(shù)型
  .參數(shù) lpBuffer, 字節(jié)集
  .參數(shù) dwNumberOfBytesToRead, 整數(shù)型
  .參數(shù) lpdwNumberOfBytesRead, 整數(shù)型, 傳址
.DLL命令 CallWindowProcA, 整數(shù)型, , "CallWindowProcA"
  .參數(shù) 子程序指針, 子程序指針
  .參數(shù) 參數(shù)1, 整數(shù)型
  .參數(shù) 參數(shù)2, 整數(shù)型
  .參數(shù) 參數(shù)3, 整數(shù)型
  .參數(shù) 參數(shù)4, 整數(shù)型

HTTP

.版本 2
.支持庫 spec
.支持庫 iconv
.程序集 HTTP, , 公開
.程序集變量 file_hwnd, 整數(shù)型
.程序集變量 dwBytes, 長整數(shù)型
.程序集變量 url, 文本型
.程序集變量 dwByteToRead, 長整數(shù)型
.程序集變量 是否_開始下載, 邏輯型
.程序集變量 是否_停止, 邏輯型
.程序集變量 file_name, 文本型
.程序集變量 file_type, 文本型
.程序集變量 file_path, 文本型
.程序集變量 start_time, 長整數(shù)型
.程序集變量 speed, 長整數(shù)型
.子程序 _初始化, , , 當基于本類的對象被創(chuàng)建后,此方法會被自動調(diào)用
.子程序 _銷毀, , , 當基于本類的對象被銷毀前,此方法會被自動調(diào)用
停止下載 ()
.子程序 創(chuàng)建下載, 邏輯型, 公開
.參數(shù) 遠程地址, 文本型
.參數(shù) 本地地址, 文本型, 可空
.局部變量 url_code, 文本型
.局部變量 url_name, 文本型
.如果真 (取文本左邊 (遠程地址, 7) ≠ “http://”)
  .如果真 (取文本左邊 (遠程地址, 8) ≠ “https://”)
    返回 (假)
  .如果真結束
.如果真結束
file_name = 取文本右邊 (遠程地址, 取文本長度 (遠程地址) - 倒找文本 (遠程地址, “/”, , 假))
file_type = 取文本右邊 (遠程地址, 取文本長度 (遠程地址) - 倒找文本 (遠程地址, “.”, , 假) + 1)
url_code = 取文本右邊 (遠程地址, 取文本長度 (遠程地址) - 尋找文本 (遠程地址, “/”, 8, 假))
url_name = 取文本左邊 (遠程地址, 尋找文本 (遠程地址, “/”, 8, 假))
url = url_name + UTF8_URL_編碼 (url_code) ' 支持中文名
.如果真 (是否為空 (本地地址))
  本地地址 = 取運行目錄 () + “\” + file_name
.如果真結束
.如果 (文件是否存在 (本地地址))
  file_hwnd = 打開文件 (本地地址, #改寫, )
.否則
  file_hwnd = 打開文件 (本地地址, #重寫, )
.如果結束
.如果真 (file_hwnd = 0)
  返回 (假)
.如果真結束
移到文件尾 (file_hwnd)
dwBytes = 取文件長度 (file_hwnd)
file_path = 本地地址
返回 (真)
.子程序 開始下載, 邏輯型, 公開
.參數(shù) 進度回調(diào), 整數(shù)型
.參數(shù) 退出回調(diào), 整數(shù)型
.局部變量 dwFlags, 整數(shù)型
.局部變量 strAgent, 文本型
.局部變量 hOpen, 整數(shù)型
.局部變量 szHead, 文本型
.局部變量 szTemp, 字節(jié)集
.局部變量 hConnect, 整數(shù)型
.局部變量 dwSize, 長整數(shù)型
是否_開始下載 = 真
是否_停止 = 假
InternetGetConnectedState (dwFlags, 0)
strAgent = “Agent” + 到文本 (取啟動時間 ())
.如果 (位與 (dwFlags, 4) = 0)
  hOpen = InternetOpenA (strAgent, 4, 0, 0, 0)
.否則
  hOpen = InternetOpenA (strAgent, 0, 0, 0, 0)
.如果結束
.如果真 (hOpen = 0)
  返回 (假)
.如果真結束
szHead = “Accept: */*” + #換行符 + “Accept-Language: zh-cn” + #換行符 + “Accept-Encoding: no-gzip, deflate” + #換行符 + “User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.1.4322)”
szHead = szHead + #換行符 + “Range:bytes=” + 到文本 (dwBytes) + “-”
szTemp = 取空白字節(jié)集 (10240)
hConnect = InternetOpenUrlA (hOpen, url, szHead, 取文本長度 (szHead), 2214592768, 0)
dwByteToRead = 0
.如果真 (HttpQueryInfoA (hConnect, 536870917, dwByteToRead, 4, 0) = 0)
  dwByteToRead = 0
.如果真結束
dwByteToRead = dwByteToRead + dwBytes
start_time = time ()
.循環(huán)判斷首 ()
  .如果真 (是否_停止 = 真)
    調(diào)用子程序 (退出回調(diào), , , )
    返回 (假)
    跳出循環(huán) ()
  .如果真結束
  .如果真 (InternetReadFile (hConnect, szTemp, 10240, dwSize) = 0)
    關閉文件 (file_hwnd)
    返回 (假)
  .如果真結束
  .如果 (dwSize = 0)
    跳出循環(huán) ()
  .否則
    szTemp = 取字節(jié)集左邊 (szTemp, dwSize)
    寫出字節(jié)集 (file_hwnd, szTemp)
  .如果結束
  dwBytes = dwBytes + dwSize
  調(diào)用子程序 (進度回調(diào), , , )
.循環(huán)判斷尾 (真)
關閉文件 (file_hwnd)
是否_開始下載 = 假
InternetCloseHandle (hOpen)
返回 (真)
.子程序 取已下載尺寸, 長整數(shù)型, 公開
返回 (dwBytes)
.子程序 取總大小, 長整數(shù)型, 公開
返回 (dwByteToRead)
.子程序 取文件名, 文本型, 公開
返回 (file_name)
.子程序 取擴展類型, 文本型, 公開
返回 (file_type)
.子程序 取下載進度, 整數(shù)型, 公開
返回 (dwBytes × 100 ÷ dwByteToRead)
.子程序 取下載時長, 整數(shù)型, 公開
返回 (time () - start_time)
.子程序 取本地文件名, 文本型, 公開
返回 (file_path)
.子程序 停止下載, , 公開
是否_停止 = 真
.如果真 (file_hwnd ≠ 0)
  關閉文件 (file_hwnd)
.如果真結束
.子程序 是否開始下載, 邏輯型, 公開
返回 (是否_開始下載)
.子程序 UTF8_URL_編碼, 文本型
.參數(shù) url, 文本型
.局部變量 字節(jié)集數(shù)據(jù), 字節(jié)集
.局部變量 i, 整數(shù)型
.局部變量 b, 文本型
.局部變量 a, 文本型
字節(jié)集數(shù)據(jù) = 編碼轉換 (到字節(jié)集 (url), #編碼_GBK, #編碼_UTF_8, )
.計次循環(huán)首 (取字節(jié)集長度 (字節(jié)集數(shù)據(jù)), i)
  a = 取十六進制文本 (字節(jié)集數(shù)據(jù) [i])
  b = b + “%” + a
.計次循環(huán)尾 ()
返回 (b)
.子程序 time, 長整數(shù)型
.局部變量 初始時間, 日期時間型
初始時間 = 到時間 (“1970-01-01 08:00:00”)
返回 (取時間間隔 (取現(xiàn)行時間 (), 初始時間, #秒))
.子程序 date, 日期時間型
.參數(shù) 時間戳記值, 長整數(shù)型, , 要轉換的時間戳記值
.局部變量 初始時間, 日期時間型
初始時間 = 到時間 (“1970-01-01 08:00:00”)
返回 (增減時間 (初始時間, #秒, 時間戳記值))

http下載斷點續(xù)傳

.版本 2
.程序集 窗口程序集_啟動窗口
.程序集變量 下載, HTTP
.程序集變量 上次位置, 整數(shù)型
.程序集變量 是否結束, 邏輯型
.子程序 __啟動窗口_創(chuàng)建完畢
是否結束 = 假
.子程序 _下載按鈕_被單擊
進度條1.位置 = 0
.如果真 (下載.創(chuàng)建下載 (“http://gw.datiw.com:8080/201708/tools/eyy_chs_jb51.rar”) = 假)
  信息框 (“創(chuàng)建任務失敗!”, 0, )
.如果真結束
.如果真 (下載.開始下載 (到整數(shù) (&下載回調(diào)), 到整數(shù) (&退出回調(diào))))
  進度條1.位置 = 100
  信息框 (“下載完成!”, 0, )
.如果真結束
.子程序 下載回調(diào)
進度條1.位置 = 下載.取下載進度 ()
處理事件 () ' 必須加,否則假死
.子程序 退出回調(diào)
.如果真 (是否結束 = 真)
  結束 ()
.如果真結束
.子程序 _停止按鈕_被單擊
下載.停止下載 ()
.子程序 _時鐘1_周期事件
.如果真 (下載.是否開始下載 ())
  標簽1.標題 = “當前任務總大小:” + 到文本 (到整數(shù) (下載.取總大小 () ÷ 1024)) + “ KB”
  標簽2.標題 = “當前已下載:” + 到文本 (到整數(shù) (下載.取已下載尺寸 () ÷ 1024)) + “ KB”
  標簽3.標題 = “當前下載速度:” + 到文本 (到整數(shù) ((下載.取已下載尺寸 () - 上次位置) ÷ 1024)) + “ KB/s”
  標簽4.標題 = “當前下載進度:” + 到文本 (下載.取下載進度 ()) + “ %”
  標簽5.標題 = “保存文件路徑:” + 到文本 (下載.取本地文件名 ())
  上次位置 = 下載.取已下載尺寸 ()
.如果真結束
.子程序 __啟動窗口_可否被關閉, 邏輯型
.如果真 (下載.是否開始下載 () = 假)
  返回 (真)
.如果真結束
下載.停止下載 ()
是否結束 = 真 ' 保證退出循環(huán)
返回 (假)

運行結果:

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

  • 易語言當前窗口或組件的窗口句柄獲取方法

    易語言當前窗口或組件的窗口句柄獲取方法

    今天小編就為大家分享一篇關于易語言當前窗口或組件的窗口句柄獲取方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-11-11
  • 易語言使用顏色選擇器修改窗口背景顏色

    易語言使用顏色選擇器修改窗口背景顏色

    今天小編就為大家分享一篇關于易語言使用顏色選擇器修改窗口背景顏色,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-11-11
  • 易語言制作絕地求生視野一鍵優(yōu)化的代碼

    易語言制作絕地求生視野一鍵優(yōu)化的代碼

    今天小編就為大家分享一篇關于易語言制作絕地求生視野一鍵優(yōu)化的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-11-11
  • 易語言使用銷毀命令關閉窗口

    易語言使用銷毀命令關閉窗口

    今天小編就為大家分享一篇關于易語言使用銷毀命令關閉窗口,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-11-11
  • 總結易語言指針轉換及調(diào)用方法

    總結易語言指針轉換及調(diào)用方法

    在本篇文章中我們給大家分享了關于易語言指針轉換及調(diào)用方法相關知識內(nèi)容,有需要的朋友們可以學習下。
    2018-11-11
  • 詳解易語言字節(jié)集動態(tài)加密

    詳解易語言字節(jié)集動態(tài)加密

    在本篇內(nèi)容里小編給大家整理了關于易語言字節(jié)集動態(tài)加密的相關內(nèi)容,有興趣的朋友們可以參考下。
    2018-11-11
  • 易語言將電腦任務欄透明化的代碼

    易語言將電腦任務欄透明化的代碼

    今天小編就為大家分享一篇關于易語言將電腦任務欄透明化的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 易語言制作連連看小游戲的代碼

    易語言制作連連看小游戲的代碼

    今天小編就為大家分享一篇關于易語言制作連連看小游戲的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-11-11
  • 易語言關閉顯示器api詳解

    易語言關閉顯示器api詳解

    小編在本篇內(nèi)容中給大家整理了關于易語言關閉顯示器api的詳細實例代碼,對此有需要的朋友們可以學習一下。
    2018-11-11
  • 易語言的QQ登錄開發(fā)教學

    易語言的QQ登錄開發(fā)教學

    在本篇內(nèi)容中小編給大家整理了關于易語言的QQ登錄的相關知識點內(nèi)容,有需要的朋友們可以學習下。
    2018-12-12

最新評論

武冈市| 永嘉县| 嘉荫县| 宁远县| 黔江区| 浙江省| 腾冲县| 新邵县| 松桃| 信丰县| 宿迁市| 永年县| 保山市| 威海市| 乐至县| 怀化市| 克什克腾旗| 博野县| 宾川县| 即墨市| 玛沁县| 白河县| 河曲县| 高邑县| 城固县| 扎赉特旗| 华安县| 镇宁| 苏尼特左旗| 肥西县| 东乡| 桦川县| 都匀市| 安阳市| 荃湾区| 涡阳县| 平武县| 独山县| 秦皇岛市| 翁牛特旗| 宁夏|