麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 易語言 > 正文

易語言實現http下載斷點續傳功能的代碼

2024-07-21 23:02:55
字體:
來源:轉載
供稿:網友

DLL命令表

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

HTTP

.版本 2.支持庫 spec.支持庫 iconv.程序集 HTTP, , 公開.程序集變量 file_hwnd, 整數型.程序集變量 dwBytes, 長整數型.程序集變量 url, 文本型.程序集變量 dwByteToRead, 長整數型.程序集變量 是否_開始下載, 邏輯型.程序集變量 是否_停止, 邏輯型.程序集變量 file_name, 文本型.程序集變量 file_type, 文本型.程序集變量 file_path, 文本型.程序集變量 start_time, 長整數型.程序集變量 speed, 長整數型.子程序 _初始化, , , 當基于本類的對象被創建后,此方法會被自動調用.子程序 _銷毀, , , 當基于本類的對象被銷毀前,此方法會被自動調用停止下載 ().子程序 創建下載, 邏輯型, 公開.參數 遠程地址, 文本型.參數 本地地址, 文本型, 可空.局部變量 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 = 本地地址返回 (真).子程序 開始下載, 邏輯型, 公開.參數 進度回調, 整數型.參數 退出回調, 整數型.局部變量 dwFlags, 整數型.局部變量 strAgent, 文本型.局部變量 hOpen, 整數型.局部變量 szHead, 文本型.局部變量 szTemp, 字節集.局部變量 hConnect, 整數型.局部變量 dwSize, 長整數型是否_開始下載 = 真是否_停止 = 假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 = 取空白字節集 (10240)hConnect = InternetOpenUrlA (hOpen, url, szHead, 取文本長度 (szHead), 2214592768, 0)dwByteToRead = 0.如果真 (HttpQueryInfoA (hConnect, 536870917, dwByteToRead, 4, 0) = 0)  dwByteToRead = 0.如果真結束dwByteToRead = dwByteToRead + dwBytesstart_time = time ().循環判斷首 ()  .如果真 (是否_停止 = 真)    調用子程序 (退出回調, , , )    返回 (假)    跳出循環 ()  .如果真結束  .如果真 (InternetReadFile (hConnect, szTemp, 10240, dwSize) = 0)    關閉文件 (file_hwnd)    返回 (假)  .如果真結束  .如果 (dwSize = 0)    跳出循環 ()  .否則    szTemp = 取字節集左邊 (szTemp, dwSize)    寫出字節集 (file_hwnd, szTemp)  .如果結束  dwBytes = dwBytes + dwSize  調用子程序 (進度回調, , , ).循環判斷尾 (真)關閉文件 (file_hwnd)是否_開始下載 = 假InternetCloseHandle (hOpen)返回 (真).子程序 取已下載尺寸, 長整數型, 公開返回 (dwBytes).子程序 取總大小, 長整數型, 公開返回 (dwByteToRead).子程序 取文件名, 文本型, 公開返回 (file_name).子程序 取擴展類型, 文本型, 公開返回 (file_type).子程序 取下載進度, 整數型, 公開返回 (dwBytes × 100 ÷ dwByteToRead).子程序 取下載時長, 整數型, 公開返回 (time () - start_time).子程序 取本地文件名, 文本型, 公開返回 (file_path).子程序 停止下載, , 公開是否_停止 = 真.如果真 (file_hwnd ≠ 0)  關閉文件 (file_hwnd).如果真結束.子程序 是否開始下載, 邏輯型, 公開返回 (是否_開始下載).子程序 UTF8_URL_編碼, 文本型.參數 url, 文本型.局部變量 字節集數據, 字節集.局部變量 i, 整數型.局部變量 b, 文本型.局部變量 a, 文本型字節集數據 = 編碼轉換 (到字節集 (url), #編碼_GBK, #編碼_UTF_8, ).計次循環首 (取字節集長度 (字節集數據), i)  a = 取十六進制文本 (字節集數據 [i])  b = b + “%” + a.計次循環尾 ()返回 (b).子程序 time, 長整數型.局部變量 初始時間, 日期時間型初始時間 = 到時間 (“1970-01-01 08:00:00”)返回 (取時間間隔 (取現行時間 (), 初始時間, #秒)).子程序 date, 日期時間型.參數 時間戳記值, 長整數型, , 要轉換的時間戳記值.局部變量 初始時間, 日期時間型初始時間 = 到時間 (“1970-01-01 08:00:00”)返回 (增減時間 (初始時間, #秒, 時間戳記值))

http下載斷點續傳

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

運行結果:

易語言,http,斷點續傳,代碼

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到易語言教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费在线观看成人av | 亚洲一区 国产精品 | jizzyouxxxx | 一级电影在线免费观看 | 九九热九九 | 久久99久久98精品免观看软件 | 国产精品久久久久久久久久东京 | 国产成人羞羞视频在线 | hdhdhd79xxxxх | 一区二区精品视频在线观看 | 九九精品免费 | 免费国产在线视频 | 精品一区二区三区网站 | 看免费5xxaaa毛片 | 九九热精品视频在线 | 国产欧美日韩视频在线观看 | 欧美大电影免费观看 | 最新中文字幕日本 | 亚洲成人中文字幕在线 | 极品国产91在线网站 | 黄色aaa视频 | 成人在线视频国产 | 黄色片网站免费看 | 欧美成人毛片 | 羞羞视频免费网站 | 亚洲免费看片网站 | 中国成人在线视频 | 综合网天天色 | 一级黄色淫片 | 轻点插视频 | 亚洲va久久久噜噜噜久牛牛影视 | 黑人操穴 | 男女污污视频网站 | 日韩一级免费毛片 | 久久精片 | 成人午夜a | 日本s级毛片免费观看 | 成人男男视频拍拍拍在线观看 | 日本羞羞的午夜电视剧 | 国产午夜探花 | 久久国语对白 |