一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - 易語言 - 易語言實現(xiàn)http下載斷點續(xù)傳功能的代碼

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

2022-02-23 15:28易語言源碼教程 易語言

今天小編就為大家分享一篇關(guān)于易語言實現(xiàn)http下載斷點續(xù)傳功能的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

DLL命令表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
.版本 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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
.版本 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://”)
    返回 (假)
  .如果真結(jié)束
.如果真結(jié)束
file_name = 取文本右邊 (遠程地址, 取文本長度 (遠程地址) - 倒找文本 (遠程地址, “/”, , 假))
file_type = 取文本右邊 (遠程地址, 取文本長度 (遠程地址) - 倒找文本 (遠程地址, “.”, , 假) + 1)
url_code = 取文本右邊 (遠程地址, 取文本長度 (遠程地址) - 尋找文本 (遠程地址, “/”, 8, 假))
url_name = 取文本左邊 (遠程地址, 尋找文本 (遠程地址, “/”, 8, 假))
url = url_name + UTF8_URL_編碼 (url_code) ' 支持中文名
.如果真 (是否為空 (本地地址))
  本地地址 = 取運行目錄 () + “\” + file_name
.如果真結(jié)束
.如果 (文件是否存在 (本地地址))
  file_hwnd = 打開文件 (本地地址, #改寫, )
.否則
  file_hwnd = 打開文件 (本地地址, #重寫, )
.如果結(jié)束
.如果真 (file_hwnd = 0)
  返回 (假)
.如果真結(jié)束
移到文件尾 (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)
.如果結(jié)束
.如果真 (hOpen = 0)
  返回 (假)
.如果真結(jié)束
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
.如果真結(jié)束
dwByteToRead = dwByteToRead + dwBytes
start_time = time ()
.循環(huán)判斷首 ()
  .如果真 (是否_停止 = 真)
    調(diào)用子程序 (退出回調(diào), , , )
    返回 (假)
    跳出循環(huán) ()
  .如果真結(jié)束
  .如果真 (InternetReadFile (hConnect, szTemp, 10240, dwSize) = 0)
    關(guān)閉文件 (file_hwnd)
    返回 (假)
  .如果真結(jié)束
  .如果 (dwSize = 0)
    跳出循環(huán) ()
  .否則
    szTemp = 取字節(jié)集左邊 (szTemp, dwSize)
    寫出字節(jié)集 (file_hwnd, szTemp)
  .如果結(jié)束
  dwBytes = dwBytes + dwSize
  調(diào)用子程序 (進度回調(diào), , , )
.循環(huán)判斷尾 (真)
關(guā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)
  關(guān)閉文件 (file_hwnd)
.如果真結(jié)束
.子程序 是否開始下載, 邏輯型, 公開
返回 (是否_開始下載)
.子程序 UTF8_URL_編碼, 文本型
.參數(shù) url, 文本型
.局部變量 字節(jié)集數(shù)據(jù), 字節(jié)集
.局部變量 i, 整數(shù)型
.局部變量 b, 文本型
.局部變量 a, 文本型
字節(jié)集數(shù)據(jù) = 編碼轉(zhuǎn)換 (到字節(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ù)型, , 要轉(zhuǎn)換的時間戳記值
.局部變量 初始時間, 日期時間型
初始時間 = 到時間 (“1970-01-01 08:00:00”)
返回 (增減時間 (初始時間, #秒, 時間戳記值))

http下載斷點續(xù)傳

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
.版本 2
.程序集 窗口程序集_啟動窗口
.程序集變量 下載, HTTP
.程序集變量 上次位置, 整數(shù)型
.程序集變量 是否結(jié)束, 邏輯型
.子程序 __啟動窗口_創(chuàng)建完畢
是否結(jié)束 = 假
.子程序 _下載按鈕_被單擊
進度條1.位置 = 0
.如果真 (下載.創(chuàng)建下載 (“http://gw.datiw.com:8080/201708/tools/eyy_chs_jb51.rar”) = 假)
  信息框 (“創(chuàng)建任務(wù)失敗!”, 0, )
.如果真結(jié)束
.如果真 (下載.開始下載 (到整數(shù) (&下載回調(diào)), 到整數(shù) (&退出回調(diào))))
  進度條1.位置 = 100
  信息框 (“下載完成!”, 0, )
.如果真結(jié)束
.子程序 下載回調(diào)
進度條1.位置 = 下載.取下載進度 ()
處理事件 () ' 必須加,否則假死
.子程序 退出回調(diào)
.如果真 (是否結(jié)束 = 真)
  結(jié)束 ()
.如果真結(jié)束
.子程序 _停止按鈕_被單擊
下載.停止下載 ()
.子程序 _時鐘1_周期事件
.如果真 (下載.是否開始下載 ())
  標簽1.標題 = “當前任務(wù)總大小:” + 到文本 (到整數(shù) (下載.取總大小 () ÷ 1024)) + “ KB”
  標簽2.標題 = “當前已下載:” + 到文本 (到整數(shù) (下載.取已下載尺寸 () ÷ 1024)) + “ KB”
  標簽3.標題 = “當前下載速度:” + 到文本 (到整數(shù) ((下載.取已下載尺寸 () - 上次位置) ÷ 1024)) + “ KB/s”
  標簽4.標題 = “當前下載進度:” + 到文本 (下載.取下載進度 ()) + “ %”
  標簽5.標題 = “保存文件路徑:” + 到文本 (下載.取本地文件名 ())
  上次位置 = 下載.取已下載尺寸 ()
.如果真結(jié)束
.子程序 __啟動窗口_可否被關(guān)閉, 邏輯型
.如果真 (下載.是否開始下載 () = 假)
  返回 (真)
.如果真結(jié)束
下載.停止下載 ()
是否結(jié)束 = 真 ' 保證退出循環(huán)
返回 (假)

運行結(jié)果:

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

總結(jié)

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

延伸 · 閱讀

精彩推薦
  • 易語言易語言設(shè)置進度條邊框樣式的方法

    易語言設(shè)置進度條邊框樣式的方法

    今天小編就為大家分享一篇關(guān)于易語言設(shè)置進度條邊框樣式的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨...

    易語言幫助手冊4422022-01-20
  • 易語言易語言在畫板中寫出指定文本當畫板中已滿會自動滾屏

    易語言在畫板中寫出指定文本當畫板中已滿會自動滾屏

    今天小編就為大家分享一篇關(guān)于易語言在畫板中寫出指定文本當畫板中已滿會自動滾屏,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,...

    易語言幫助手冊9092022-01-12
  • 易語言易語言關(guān)于程序進程和線程的基礎(chǔ)知識

    易語言關(guān)于程序進程和線程的基礎(chǔ)知識

    今天小編就為大家分享一篇關(guān)于易語言關(guān)于程序進程和線程的基礎(chǔ)知識,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起...

    三葉資源網(wǎng)6662022-02-24
  • 易語言實例操作易語言載入窗口

    實例操作易語言載入窗口

    在本文中小編給大家整理的是關(guān)于易語言載入窗口的教程和步驟內(nèi)容,需要的可以跟著學(xué)習(xí)下...

    易語言教程網(wǎng)19162022-03-02
  • 易語言易語言獲取指定磁盤的名稱

    易語言獲取指定磁盤的名稱

    今天小編就為大家分享一篇關(guān)于易語言獲取指定磁盤的名稱,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來...

    易語言幫助手冊12662022-01-04
  • 易語言易語言生成exe文件的方法

    易語言生成exe文件的方法

    在本篇內(nèi)容中小編給大家分享的是關(guān)于易語言生成exe文件的方法知識點,需要的朋友們參考下。...

    易語言教程網(wǎng)14792022-03-01
  • 易語言一步一步跟我學(xué)易語言之關(guān)于變量

    一步一步跟我學(xué)易語言之關(guān)于變量

    今天小編就為大家分享一篇關(guān)于一步一步跟我學(xué)易語言之關(guān)于變量,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨...

    易語言幫助手冊10822021-06-17
  • 易語言一步一步跟我學(xué)易語言之第二個易程序菜單設(shè)計

    一步一步跟我學(xué)易語言之第二個易程序菜單設(shè)計

    今天小編就為大家分享一篇關(guān)于的一步一步跟我學(xué)易語言之第二個易程序菜單設(shè)計,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要...

    易語言幫助手冊7092021-06-17
主站蜘蛛池模板: 亚洲国产在线观看免费视频 | 精品福利一区 | 乌克兰13一14娇小 | 国产精品久久久久久久人人看 | 4hc44四虎www在线影院男同 | 日韩r | 日韩精品免费一级视频 | 91久久精品国产一区二区 | 国内精品福利丝袜视频_速 国内精品91久久久久 | 爽好舒服把腿张小说 | 奇米888在线看奇米999 | 2022国产麻豆剧果冻传媒入口 | 丝袜足液精子免费视频 | 国产精品短视频 | 成年人黄视频在线观看 | 性刺激欧美三级在线现看中文 | 国产欧美一区二区精品性色99 | 把内裤拔到一边高h1v1 | 吻戏辣妞范1000免费体验 | 亚洲精品人成网在线播放影院 | 日本韩国无矿砖码 | 亚洲国产成人资源在线桃色 | 国产一卡2卡3卡四卡高清 | 国产精品香蕉在线观看不卡 | 亚洲 另类 欧美 变态屎尿 | 日韩一级片在线观看 | 99热精品在线免费观看 | 午夜国产精品视频在线 | caonila国产在线观看 | 日韩网新片免费 | 欧美成人精品福利在线视频 | 好紧好爽的午夜寂寞视频 | 亚洲成年人专区 | 91久久青青青国产免费 | 青草视频在线观看免费视频 | 日韩一级在线观看 | 国产高清国内精品福利色噜噜 | 亚洲第一综合网站 | 欧美男女爱爱视频 | 日韩日日日 | gay 男同志被捆绑茎 |