激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - 易語言 - 易語言多線程多任務下載器的代碼

易語言多線程多任務下載器的代碼

2022-02-16 16:54易語言源碼貝貝吧 易語言

今天小編就為大家分享一篇關于易語言多線程多任務下載器的代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

多線程多任務下載模塊源碼

1.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
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
.版本 2
.DLL命令 InternetGetConnectedStateHTTP, , "Wininet.dll", "InternetGetConnectedState", 公開
  .參數 lpdwFlags, 整數型, 傳址
  .參數 dwReserved, 整數型
.DLL命令 InternetOpenAHTTP, 整數型, "Wininet.dll", "InternetOpenA", 公開
  .參數 lpszAgent, 文本型
  .參數 dwAccessType, 整數型
  .參數 lpszProxyName, 整數型
  .參數 lpszProxyBypass, 整數型
  .參數 dwFlags, 整數型
.DLL命令 InternetOpenUrlAHTTP, 整數型, "Wininet.dll", "InternetOpenUrlA", 公開
  .參數 hInternet, 整數型
  .參數 lpszUrl, 文本型
  .參數 lpszHeaders, 文本型
  .參數 dwHeadersLength, 整數型
  .參數 dwFlags, 整數型
  .參數 dwContext, 整數型
.DLL命令 InternetCloseHandleHTTP, , "Wininet.dll", "InternetCloseHandle", 公開
  .參數 handle, 整數型
.DLL命令 HttpQueryInfoAHTTP, 整數型, "Wininet.dll", "HttpQueryInfoA", 公開
  .參數 hRequest, 整數型
  .參數 dwInfoLevel, 整數型
  .參數 lpvBuffer, 整數型, 傳址
  .參數 lpdwBufferLength, 整數型, 傳址
  .參數 lpdwIndex, 整數型, 傳址
.DLL命令 創建文件, 整數型, "kernel32.dll", "CreateFileA", 公開
  .參數 文件名, 文本型
  .參數 打開方式, 整數型, , -2147483648表示讀,1073741824表示寫,0可取屬性
  .參數 共享方式, 整數型, , 1共享讀,2共享寫,0不共享
  .參數 安全性, 整數型, , 為空即可
  .參數 打開方式2, 整數型, , 1創建文件(文件存在出錯),2創建文件(改寫),3文件必須存在,4如果文件不存在則創建,5將現有文件縮短為0
  .參數 文件屬性, 整數型, , 128默認屬性,268435456隨機訪問優化,134217728連續訪問優化,67108864臨時文件
  .參數 文件句柄, 整數型, , 一般為0
.DLL命令 創建映射, 整數型, "kernel32.dll", "CreateFileMappingA", 公開
  .參數 文件句柄, 整數型
  .參數 安全對象, 整數型, , 0表示默認屬性
  .參數 映射方式, 整數型, , 2表示只讀,4表示可讀寫
  .參數 高32位, 整數型, , 文件映射的最大長度(高32位)
  .參數 低32位, 整數型, , 文件映射的最小長度(低32位)
  .參數 對象名字, 整數型, , 可以更改為文件型
.DLL命令 映射裝載, 整數型, "kernel32.dll", "MapViewOfFile", 公開
  .參數 映射句柄, 整數型
  .參數 映射方式, 整數型, , 2可讀可寫,4只讀,
  .參數 高32位, 整數型, , 文件中映射起點的高32位地址,64k的整數倍
  .參數 低32位, 整數型, , 文件中映射起點的低32位地址,64k的整數倍
  .參數 字節數, 整數型, , 文件中要映射的字節數,根據實際長度指定
.DLL命令 映射卸載, 整數型, "kernel32.dll", "UnmapViewOfFile", 公開
  .參數 映射地址, 整數型, , 用映射裝載函數獲得的
.DLL命令 CloseHandleHTTP, 整數型, "kernel32.dll", "CloseHandle", 公開
  .參數 hObject, 整數型
.DLL命令 HeapCreate, 整數型, "kernel32.dll", "HeapCreate", 公開
  .參數 flOptions, 整數型
  .參數 dwInitialSize, 整數型
  .參數 dwMaximumSize, 整數型
.DLL命令 HeapAllocHTTP, 整數型, "kernel32.dll", "HeapAlloc", 公開
  .參數 hHeap, 整數型
  .參數 dwFlags, 整數型
  .參數 dwBytes, 整數型
.DLL命令 HeapDestroy, 邏輯型, "kernel32.dll", "HeapDestroy", 公開
  .參數 hHeap, 整數型
.DLL命令 RtlMoveMemory_讀整數, , "kernel32.dll", "RtlMoveMemory", 公開
  .參數 Destination, 整數型, 傳址
  .參數 Source, 整數型
  .參數 Length, 整數型
.DLL命令 RtlMoveMemory_寫整數, , "kernel32.dll", "RtlMoveMemory", 公開
  .參數 Destination, 整數型
  .參數 Source, 整數型, 傳址
  .參數 Length, 整數型
.DLL命令 RtlMoveMemory_寫文本, , "kernel32.dll", "RtlMoveMemory", 公開
  .參數 Destination, 整數型
  .參數 Source, 文本型, 傳址
  .參數 Length, 整數型
.DLL命令 InitializeCriticalSectionHTTP, , "kernel32.dll", "InitializeCriticalSection", 公開
  .參數 lpCriticalSection, 整數型
.DLL命令 CreateThreadHTTP, 整數型, "kernel32.dll", "CreateThread", 公開
  .參數 lpThreadAttributes, 整數型
  .參數 dwStackSize, 整數型
  .參數 lpStartAddress, 子程序指針
  .參數 lpParameter, 整數型
  .參數 dwCreationFlags, 整數型
  .參數 lpThreadId, 整數型, 傳址
.DLL命令 DeleteCriticalSectionHTTP, , "kernel32.dll", "DeleteCriticalSection", 公開
  .參數 lpCriticalSection, 整數型
.DLL命令 EnterCriticalSectionHTTP, , "kernel32.dll", "EnterCriticalSection", 公開
  .參數 lpCriticalSection, 整數型
.DLL命令 LeaveCriticalSectionHTTP, , "kernel32.dll", "LeaveCriticalSection", 公開
  .參數 lpCriticalSection, 整數型
.DLL命令 WaitForSingleObjectHTTP, 整數型, "kernel32.dll", "WaitForSingleObject", 公開
  .參數 hHandle, 整數型
  .參數 dwMilliseconds, 整數型
.DLL命令 InternetReadFileHTTP, 整數型, "Wininet.dll", "InternetReadFile", 公開
  .參數 hFile, 整數型
  .參數 lpBuffer, 整數型
  .參數 dwNumberOfBytesToRead, 整數型
  .參數 lpdwNumberOfBytesRead, 整數型, 傳址
.DLL命令 寫入映射, , "kernel32.dll", "RtlMoveMemory", 公開
  .參數 起始位置, 整數型, , 用映射裝載命令得到的
  .參數 待寫入數據, 整數型, , 要寫入的數據,可以更改為其他類型
  .參數 數據長度, 整數型, , 要寫入的數據長度,不大于實際數據長度
.DLL命令 HeapFree, 邏輯型, "kernel32.dll", "HeapFree", 公開
  .參數 hHeap, 整數型
  .參數 dwFlags, 整數型
  .參數 lpMem, 整數型
.DLL命令 PathFindExtensionAjtw, 文本型, "shlwapi.dll", "PathFindExtensionA", 公開
  .參數 文件路徑, 文本型
.DLL命令 InternetGetConnectedState, 邏輯型, "Wininet.dll", "InternetGetConnectedState", 公開, 本來是無返回值
  .參數 lpdwFlags, 整數型, 傳址
  .參數 dwReserved, 整數型
.DLL命令 HttpQueryInfohx, 整數型, "wininet.dll", "HttpQueryInfoA", 公開
  .參數 Internet請求句柄, 整數型
  .參數 待查信息, 整數型
  .參數 返回容器, 文本型, 傳址
  .參數 返回容器長度, 整數型, 傳址
  .參數 lpdwIndex, 整數型, 傳址

2.全局變量表

?
1
2
3
.版本 2
.全局變量 配備文本變量, 文本型, , "0"
.全局變量 多任務句柄, 整數型, , "0"

3.多線程

?
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
.版本 2
.程序集 程序集2
.子程序 文件_取網絡文件名1, 文本型, 公開
.參數 地址, 文本型
.局部變量 Onlined, 邏輯型
.局部變量 dwFlags, 整數型
.局部變量 strAgent, 文本型
.局部變量 hConnect, 整數型
.局部變量 hOpen, 整數型
.局部變量 szTemp, 文本型
.局部變量 dwSizeOfRq, 整數型
Onlined = InternetGetConnectedState (dwFlags, 0)
.如果真 (Onlined = 假)
  返回 (取文件名11 (地址))
.如果真結束
strAgent = “我的下載” + 到文本 (取啟動時間 ())
.如果 (位與 (dwFlags, 4) = 0)
  hOpen = InternetOpenAHTTP (strAgent, 4, 0, 0, 0)
.否則
  hOpen = InternetOpenAHTTP (strAgent, 0, 0, 0, 0)
.如果結束
.如果真 (hOpen = 0)
  返回 (取文件名11 (地址))
.如果真結束
hConnect = InternetOpenUrlAHTTP (hOpen, 地址, “”, 0, 2097152 + 2147483648 + 67108864 + 256, 0)
.如果真 (hConnect = 0)
  InternetCloseHandleHTTP (hOpen)
  返回 (取文件名11 (地址))
.如果真結束
szTemp = 取空白文本 (255)
dwSizeOfRq = 255
.如果真 (HttpQueryInfohx (hConnect, 51, szTemp, dwSizeOfRq, 0) = 0)
  InternetCloseHandleHTTP (hOpen)
  返回 (取文件名11 (地址))
.如果真結束
InternetCloseHandleHTTP (hOpen)
返回 (取文件名11 (szTemp))
.子程序 取文件名11, 文本型
.參數 地址, 文本型
.局部變量 i, 整數型
.局部變量 szTemp, 文本型
szTemp = 子文本替換 (地址, “\”, “/”, , , 真)
i = 倒找文本 (szTemp, “/”, , 假)
.如果真 (i ≠ -1)
  szTemp = 取文本右邊 (szTemp, 取文本長度 (szTemp) - i)
.如果真結束
i = 尋找文本 (szTemp, “?”, , 假)
.如果真 (i = -1)
  返回 (szTemp)
.如果真結束
返回 (取文本左邊 (szTemp, i - 1))
.子程序 文件_取擴展名, 文本型, 公開, 返回一個文件的后綴名,如:.jpg 如果沒有后綴,返回空
.參數 文件名, 文本型, , 需要處理的原始文件名
返回 (PathFindExtensionAjtw (文件名))
.子程序 多線程_HTTP下載_開始_多任務, 整數型
.參數 參數_下載地址, 文本型
.參數 參數_保存路徑, 文本型, , 可以只填寫下載路徑,程序將會以下載地址的文件名來保存,如果自己添加路徑加文件名,則程序會將以自己添加的文件名來命名,注意:路徑中不能有 . ,除非是添加路徑加文件名
.參數 參數_線程數, 整數型
.參數 參數_回調函數地址, 整數型
.局部變量 變量_dwFlags, 整數型
.局部變量 變量_hOpen, 整數型
.局部變量 變量_szHead, 文本型
.局部變量 變量_hConnect, 整數型
.局部變量 變量_dwByteToRead, 整數型
.局部變量 變量_dwSizeOfRq, 整數型
.局部變量 變量_文件句柄, 整數型
.局部變量 變量_映射句柄, 整數型
.局部變量 變量_塊, 整數型
.局部變量 變量_次數, 整數型
.局部變量 變量_hHeap, 整數型
.局部變量 變量_msg, 整數型
.局部變量 變量_地址, 整數型
.局部變量 變量_許可證, 整數型
.局部變量 變量_當前線程數, 整數型
.局部變量 變量_進程句柄, 整數型
.局部變量 c, 文本型, , "0"
.局部變量 a, 文本型
.局部變量 cc, 文本型
a = 文件_取擴展名 (參數_保存路徑)
.如果真 (a = “”)
  .如果 (取文本右邊 (參數_保存路徑, 1) = “\”)
    cc = 文件_取網絡文件名1 (參數_下載地址)
    參數_保存路徑 = 參數_保存路徑 + cc
  .否則
    cc = 文件_取網絡文件名1 (參數_下載地址)
    參數_保存路徑 = 參數_保存路徑 + “\” + cc
  .如果結束
.如果真結束
.如果 (倒找文本 (參數_保存路徑, “.”, , 假) = -1) ' 那么就是 路徑 ,沒有文件名
  c = 分割文本 (參數_保存路徑, “\”, )
  .如果真 (取文本右邊 (參數_保存路徑, 1) ≠ “\”)
    參數_保存路徑 = 參數_保存路徑 + “\”
  .如果真結束
  參數_保存路徑 = 參數_保存路徑 + c [取數組成員數 (c)]
.否則
.如果結束
' 取文件大小
InternetGetConnectedStateHTTP (變量_dwFlags, 0)
.如果 (位與 (變量_dwFlags, 4) = 0)
  變量_hOpen = InternetOpenAHTTP (字符 (0), 4, 0, 0, 0)
.否則
  變量_hOpen = InternetOpenAHTTP (字符 (0), 0, 0, 0, 0)
.如果結束
.如果真 (變量_hOpen = 0)
  ' Internet連接錯誤
  返回 (-1)
.如果真結束
變量_szHead = “Accept: */*” + #換行符 + “Accept-Language: zh-cn” + #換行符 + “Accept-Encoding: gzip, deflate” + #換行符 + “User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.1.4322)”
變量_hConnect = InternetOpenUrlAHTTP (變量_hOpen, 參數_下載地址, 變量_szHead, 取文本長度 (變量_szHead), 2214592768, 0)
.如果真 (變量_hConnect = 0)
  ' 不能打開該URL!
  InternetCloseHandleHTTP (變量_hOpen)
  返回 (-1)
.如果真結束
變量_dwByteToRead = 0
變量_dwSizeOfRq = 4
.如果真 (HttpQueryInfoAHTTP (變量_hConnect, 536870917, 變量_dwByteToRead, 變量_dwSizeOfRq, 0) = 0)
  變量_dwByteToRead = 0
.如果真結束
InternetCloseHandleHTTP (變量_hConnect)
InternetCloseHandleHTTP (變量_hOpen)
' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 創建文件
變量_文件句柄 = 創建文件 (參數_保存路徑, 位或 (-2147483648, 1073741824), 位或 (1, 2), 0, 2, 0, 0)
.如果真 (變量_文件句柄 = -1)
  返回 (-1)
.如果真結束
變量_映射句柄 = 創建映射 (變量_文件句柄, 0, 4, 0, 變量_dwByteToRead, 0)
.如果真 (變量_映射句柄 = 0)
  CloseHandleHTTP (變量_文件句柄)
  返回 (-1)
.如果真結束
.如果真 (變量_dwByteToRead = 0)
  CloseHandleHTTP (變量_映射句柄)
  CloseHandleHTTP (變量_文件句柄)
  返回 (0)
.如果真結束
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 計算分段
變量_塊 = 1024 × 1024
變量_次數 = 變量_dwByteToRead ÷ 變量_塊
.如果真 (變量_dwByteToRead % 變量_塊 ≠ 0)
  變量_次數 = 變量_次數 + 1
.如果真結束
.如果真 (參數_線程數 > 變量_次數)
  參數_線程數 = 變量_次數
.如果真結束
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 傳遞信息結構
變量_hHeap = HeapCreate (4, 0, 0)
.如果真 (變量_hHeap = 0)
  CloseHandleHTTP (變量_映射句柄)
  CloseHandleHTTP (變量_文件句柄)
  返回 (-1)
.如果真結束
' 下載地址指針,回調函數地址+4,文件句柄+8,映射句柄+12,堆+16,許可證指針+20,線程數+24,當前線程數+28,任務狀態+32,塊+36,當前次數+40,總次數+44,完成大小+48,文件大小+52,傳遞完畢+56
變量_msg = HeapAllocHTTP (變量_hHeap, 8, 15 × 4)
.如果真 (變量_msg = 0)
  HeapDestroy (變量_hHeap)
  CloseHandleHTTP (變量_映射句柄)
  CloseHandleHTTP (變量_文件句柄)
  返回 (-1)
.如果真結束
變量_地址 = HeapAllocHTTP (變量_hHeap, 8, 取文本長度 (參數_下載地址) + 1)
.如果真 (變量_地址 = 0)
  HeapDestroy (變量_hHeap)
  CloseHandleHTTP (變量_映射句柄)
  CloseHandleHTTP (變量_文件句柄)
  返回 (-1)
.如果真結束
RtlMoveMemory_寫文本 (變量_地址, 參數_下載地址, 取文本長度 (參數_下載地址) + 1)
變量_許可證 = HeapAllocHTTP (變量_hHeap, 8, 24)
.如果真 (變量_許可證 = 0)
  HeapDestroy (變量_hHeap)
  CloseHandleHTTP (變量_映射句柄)
  CloseHandleHTTP (變量_文件句柄)
  返回 (-1)
.如果真結束
InitializeCriticalSectionHTTP (變量_許可證)
RtlMoveMemory_寫整數 (變量_msg, 變量_地址, 4)
RtlMoveMemory_寫整數 (變量_msg + 4, 參數_回調函數地址, 4)
RtlMoveMemory_寫整數 (變量_msg + 8, 變量_文件句柄, 4)
RtlMoveMemory_寫整數 (變量_msg + 12, 變量_映射句柄, 4)
RtlMoveMemory_寫整數 (變量_msg + 16, 變量_hHeap, 4)
RtlMoveMemory_寫整數 (變量_msg + 20, 變量_許可證, 4)
RtlMoveMemory_寫整數 (變量_msg + 24, 參數_線程數, 4)
RtlMoveMemory_寫整數 (變量_msg + 28, 變量_當前線程數, 4)
RtlMoveMemory_寫整數 (變量_msg + 32, 0, 4) ' -1錯誤 0開始 1停止 2暫停
RtlMoveMemory_寫整數 (變量_msg + 36, 變量_塊, 4)
RtlMoveMemory_寫整數 (變量_msg + 40, 0, 4)
RtlMoveMemory_寫整數 (變量_msg + 44, 變量_次數, 4)
RtlMoveMemory_寫整數 (變量_msg + 48, 0, 4)
RtlMoveMemory_寫整數 (變量_msg + 52, 變量_dwByteToRead, 4)
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 創建線程
變量_進程句柄 = CreateThreadHTTP (0, 0, &HTTP下載處理_1_多任務, 變量_msg, 0, 0)
.如果真 (變量_進程句柄 = 0)
  DeleteCriticalSectionHTTP (變量_許可證)
  HeapDestroy (變量_hHeap)
  CloseHandleHTTP (變量_映射句柄)
  CloseHandleHTTP (變量_文件句柄)
  返回 (-1)
.如果真結束
CloseHandleHTTP (變量_進程句柄)
返回 (變量_msg)
.子程序 多線程_HTTP下載_停止, , 公開
.參數 參數_句柄, 整數型
.局部變量 變量_許可證, 整數型
RtlMoveMemory_讀整數 (變量_許可證, 參數_句柄 + 20, 4)
EnterCriticalSectionHTTP (變量_許可證)
RtlMoveMemory_寫整數 (參數_句柄 + 32, 1, 4) ' -1錯誤 0開始 1停止 2暫停
LeaveCriticalSectionHTTP (變量_許可證)
.子程序 多線程_HTTP下載_暫停, , 公開
.參數 參數_句柄, 整數型
.局部變量 變量_許可證, 整數型
RtlMoveMemory_讀整數 (變量_許可證, 參數_句柄 + 20, 4)
EnterCriticalSectionHTTP (變量_許可證)
RtlMoveMemory_寫整數 (參數_句柄 + 32, 2, 4) ' -1錯誤 0開始 1停止 2暫停
LeaveCriticalSectionHTTP (變量_許可證)
.子程序 多線程_HTTP下載_繼續, , 公開
.參數 參數_句柄, 整數型
.局部變量 變量_許可證, 整數型
RtlMoveMemory_讀整數 (變量_許可證, 參數_句柄 + 20, 4)
EnterCriticalSectionHTTP (變量_許可證)
RtlMoveMemory_寫整數 (參數_句柄 + 32, 0, 4) ' -1錯誤 0開始 1停止 2暫停
LeaveCriticalSectionHTTP (變量_許可證)
.子程序 HTTP下載處理_1_多任務
.參數 參數_信息指針, 整數型
.局部變量 變量_回調函數地址, 整數型
.局部變量 變量_文件句柄, 整數型
.局部變量 變量_映射句柄, 整數型
.局部變量 變量_堆, 整數型
.局部變量 變量_許可證, 整數型
.局部變量 變量_線程數, 整數型
.局部變量 變量_總次數, 整數型
.局部變量 變量_文件大小, 整數型
.局部變量 變量_當前次數, 整數型
.局部變量 變量_當前線程數, 整數型
.局部變量 變量_任務狀態, 整數型
.局部變量 變量_進程句柄, 整數型
.局部變量 變量_傳遞完畢, 整數型
.局部變量 變量_完成大小, 整數型
.局部變量 i, 整數型
.局部變量 a, 文本型
.局部變量 傳遞ID, 整數型
' 下載地址指針,回調函數地址+4,文件句柄+8,映射句柄+12,堆+16,許可證指針+20,線程數+24,當前線程數+28,任務狀態+32,塊+36,當前次數+40,總次數+44,完成大小+48,文件大小+52,傳遞完畢+56
RtlMoveMemory_讀整數 (變量_回調函數地址, 參數_信息指針 + 4, 4)
RtlMoveMemory_讀整數 (變量_文件句柄, 參數_信息指針 + 8, 4)
RtlMoveMemory_讀整數 (變量_映射句柄, 參數_信息指針 + 12, 4)
RtlMoveMemory_讀整數 (變量_堆, 參數_信息指針 + 16, 4)
RtlMoveMemory_讀整數 (變量_許可證, 參數_信息指針 + 20, 4)
RtlMoveMemory_讀整數 (變量_線程數, 參數_信息指針 + 24, 4)
RtlMoveMemory_讀整數 (變量_總次數, 參數_信息指針 + 44, 4)
RtlMoveMemory_讀整數 (變量_文件大小, 參數_信息指針 + 52, 4)
變量_當前次數 = 0
.判斷循環首 (變量_當前次數 < 變量_總次數)
  EnterCriticalSectionHTTP (變量_許可證)
  RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
  LeaveCriticalSectionHTTP (變量_許可證)
  .如果真 (變量_當前線程數 < 變量_線程數)
    EnterCriticalSectionHTTP (變量_許可證)
    RtlMoveMemory_讀整數 (變量_任務狀態, 參數_信息指針 + 32, 4)
    LeaveCriticalSectionHTTP (變量_許可證)
    .如果真 (變量_任務狀態 = -1 或 變量_任務狀態 = 1)
      跳出循環 ()
    .如果真結束
    .如果真 (變量_任務狀態 = 2)
      WaitForSingleObjectHTTP (-1, 100)
      到循環尾 ()
    .如果真結束
    變量_當前次數 = 變量_當前次數 + 1
    RtlMoveMemory_寫整數 (參數_信息指針 + 40, 變量_當前次數, 4)
    變量_進程句柄 = CreateThreadHTTP (0, 0, &HTTP下載處理_2_多任務, 參數_信息指針, 0, 0)
    .如果真 (變量_進程句柄 = 0)
      EnterCriticalSectionHTTP (變量_許可證)
      RtlMoveMemory_寫整數 (參數_信息指針 + 32, -1, 4)
      LeaveCriticalSectionHTTP (變量_許可證)
      跳出循環 ()
    .如果真結束
    CloseHandleHTTP (變量_進程句柄)
    .循環判斷首 ()
      EnterCriticalSectionHTTP (變量_許可證)
      RtlMoveMemory_讀整數 (變量_傳遞完畢, 參數_信息指針 + 56, 4)
      LeaveCriticalSectionHTTP (變量_許可證)
      WaitForSingleObjectHTTP (-1, 100)
    .循環判斷尾 (變量_傳遞完畢 = 0)
  .如果真結束
  WaitForSingleObjectHTTP (-1, 100)
.判斷循環尾 ()
.循環判斷首 ()
  EnterCriticalSectionHTTP (變量_許可證)
  RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
  LeaveCriticalSectionHTTP (變量_許可證)
  WaitForSingleObjectHTTP (-1, 100)
.循環判斷尾 (變量_當前線程數 ≠ 0)
RtlMoveMemory_讀整數 (變量_任務狀態, 參數_信息指針 + 32, 4)
.判斷開始 (變量_任務狀態 = -1)
  .計次循環首 (取數組成員數 (多任務句柄), i)
    .如果真 (參數_信息指針 = 多任務句柄 [i])
      傳遞ID = i
    .如果真結束
  .計次循環尾 ()
  .如果真 (傳遞ID ≠ 0)
    程序_Call (變量_回調函數地址, 傳遞ID, -1, 0, 0)
    ' 調用子程序 (變量_回調函數地址, , , 傳遞ID, -1, 0, 0)
  .如果真結束
.判斷 (變量_任務狀態 = 0)
  RtlMoveMemory_讀整數 (變量_完成大小, 參數_信息指針 + 48, 4)
  .計次循環首 (取數組成員數 (多任務句柄), i)
    .如果真 (參數_信息指針 = 多任務句柄 [i])
      傳遞ID = i
    .如果真結束
  .計次循環尾 ()
  .如果真 (傳遞ID ≠ 0)
    程序_Call (變量_回調函數地址, 傳遞ID, 0, 變量_文件大小, 變量_完成大小)
    ' 調用子程序 (變量_回調函數地址, , , 傳遞ID, 0, 變量_文件大小, 變量_完成大小)
  .如果真結束
.默認
.判斷結束
DeleteCriticalSectionHTTP (變量_許可證)
HeapDestroy (變量_堆)
CloseHandleHTTP (變量_映射句柄)
CloseHandleHTTP (變量_文件句柄)
.子程序 HTTP下載處理_2_多任務
.參數 參數_信息指針, 整數型
.局部變量 變量_下載地址指針, 整數型
.局部變量 變量_回調函數地址, 整數型
.局部變量 變量_映射句柄, 整數型
.局部變量 變量_許可證, 整數型
.局部變量 變量_堆, 整數型
.局部變量 變量_當前線程數, 整數型
.局部變量 變量_塊_1, 整數型
.局部變量 變量_當前次數, 整數型
.局部變量 變量_總次數, 整數型
.局部變量 變量_文件大小, 整數型
.局部變量 變量_dwFlags, 整數型
.局部變量 變量_hOpen, 整數型
.局部變量 變量_szHead, 文本型
.局部變量 變量_開始, 整數型
.局部變量 變量_結尾, 整數型
.局部變量 變量_hConnect, 整數型
.局部變量 變量_塊_2, 整數型
.局部變量 變量_http塊, 整數型
.局部變量 變量_當前大小, 整數型
.局部變量 變量_szTemp, 整數型
.局部變量 變量_dwSize, 整數型
.局部變量 變量_寫入位置, 整數型
.局部變量 變量_塊位置, 整數型
.局部變量 變量_視圖句柄, 整數型
.局部變量 變量_完成大小, 整數型
.局部變量 變量_任務狀態, 整數型
.局部變量 i, 整數型
.局部變量 a, 文本型
.局部變量 傳遞ID, 整數型
' 下載地址指針,回調函數地址+4,文件句柄+8,映射句柄+12,堆+16,許可證指針+20,線程數+24,當前線程數+28,任務狀態+32,塊+36,當前次數+40,總次數+44,完成大小+48,文件大小+52,傳遞完畢+56
RtlMoveMemory_讀整數 (變量_下載地址指針, 參數_信息指針, 4)
RtlMoveMemory_讀整數 (變量_回調函數地址, 參數_信息指針 + 4, 4)
RtlMoveMemory_讀整數 (變量_映射句柄, 參數_信息指針 + 12, 4)
RtlMoveMemory_讀整數 (變量_堆, 參數_信息指針 + 16, 4)
RtlMoveMemory_讀整數 (變量_許可證, 參數_信息指針 + 20, 4)
RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
RtlMoveMemory_讀整數 (變量_塊_1, 參數_信息指針 + 36, 4)
RtlMoveMemory_讀整數 (變量_當前次數, 參數_信息指針 + 40, 4)
RtlMoveMemory_讀整數 (變量_文件大小, 參數_信息指針 + 52, 4)
EnterCriticalSectionHTTP (變量_許可證)
RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
RtlMoveMemory_寫整數 (參數_信息指針 + 28, 變量_當前線程數 + 1, 4)
RtlMoveMemory_寫整數 (參數_信息指針 + 56, 1, 4)
LeaveCriticalSectionHTTP (變量_許可證)
InternetGetConnectedStateHTTP (變量_dwFlags, 0)
.如果 (位與 (變量_dwFlags, 4) = 0)
  變量_hOpen = InternetOpenAHTTP (字符 (0), 4, 0, 0, 0)
.否則
  變量_hOpen = InternetOpenAHTTP (字符 (0), 0, 0, 0, 0)
.如果結束
.如果真 (變量_hOpen = 0)
  ' Internet連接錯誤
  EnterCriticalSectionHTTP (變量_許可證)
  RtlMoveMemory_寫整數 (參數_信息指針 + 32, -1, 4)
  RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
  RtlMoveMemory_寫整數 (參數_信息指針 + 28, 變量_當前線程數 - 1, 4)
  LeaveCriticalSectionHTTP (變量_許可證)
  返回 ()
.如果真結束
.如果 (變量_當前次數 = 變量_總次數)
  變量_開始 = 變量_塊_1 × (變量_當前次數 - 1)
  變量_結尾 = 變量_文件大小
.否則
  變量_開始 = 變量_塊_1 × (變量_當前次數 - 1)
  變量_結尾 = 變量_塊_1 × 變量_當前次數 - 1
.如果結束
變量_szHead = “Accept: */*” + #換行符 + “Accept-Language: zh-cn” + #換行符 + “Accept-Encoding: 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=” + 到文本 (變量_開始) + “-” + 到文本 (變量_結尾)
變量_hConnect = InternetOpenUrlAHTTP (變量_hOpen, 指針到文本 (變量_下載地址指針), 變量_szHead, 取文本長度 (變量_szHead), 2214592768, 0)
.如果真 (變量_hConnect = 0)
  ' 不能打開該URL!
  InternetCloseHandleHTTP (變量_hOpen)
  EnterCriticalSectionHTTP (變量_許可證)
  RtlMoveMemory_寫整數 (參數_信息指針 + 32, -1, 4)
  RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
  RtlMoveMemory_寫整數 (參數_信息指針 + 28, 變量_當前線程數 - 1, 4)
  LeaveCriticalSectionHTTP (變量_許可證)
  返回 ()
.如果真結束
變量_塊_2 = 65536
變量_http塊 = 20480
變量_當前大小 = 0
變量_szTemp = HeapAllocHTTP (變量_堆, 8, 變量_http塊)
.如果真 (變量_szTemp = 0)
  InternetCloseHandleHTTP (變量_hConnect)
  InternetCloseHandleHTTP (變量_hOpen)
  EnterCriticalSectionHTTP (變量_許可證)
  RtlMoveMemory_寫整數 (參數_信息指針 + 32, -1, 4)
  RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
  RtlMoveMemory_寫整數 (參數_信息指針 + 28, 變量_當前線程數 - 1, 4)
  LeaveCriticalSectionHTTP (變量_許可證)
  返回 ()
.如果真結束
.循環判斷首 ()
  .如果真 (InternetReadFileHTTP (變量_hConnect, 變量_szTemp, 變量_http塊, 變量_dwSize) = 0)
    ' 讀文件失敗
    EnterCriticalSectionHTTP (變量_許可證)
    RtlMoveMemory_寫整數 (參數_信息指針 + 32, -1, 4)
    LeaveCriticalSectionHTTP (變量_許可證)
    跳出循環 ()
  .如果真結束
  .如果真 (變量_dwSize = 0)
    跳出循環 ()
  .如果真結束
  變量_寫入位置 = 變量_開始 + 變量_當前大小
  變量_塊位置 = 變量_寫入位置 ÷ 變量_塊_2
  變量_塊位置 = 變量_塊位置 × 變量_塊_2
  變量_視圖句柄 = 映射裝載 (變量_映射句柄, 2, 0, 變量_塊位置, 變量_寫入位置 - 變量_塊位置 + 變量_dwSize)
  .如果真 (變量_視圖句柄 = 0)
    ' 映射裝載失敗
    EnterCriticalSectionHTTP (變量_許可證)
    RtlMoveMemory_寫整數 (參數_信息指針 + 32, -1, 4)
    LeaveCriticalSectionHTTP (變量_許可證)
    跳出循環 ()
  .如果真結束
  寫入映射 (變量_視圖句柄 + 變量_寫入位置 - 變量_塊位置, 變量_szTemp, 變量_dwSize)
  映射卸載 (變量_視圖句柄)
  變量_當前大小 = 變量_當前大小 + 變量_dwSize
  EnterCriticalSectionHTTP (變量_許可證)
  RtlMoveMemory_讀整數 (變量_完成大小, 參數_信息指針 + 48, 4)
  變量_完成大小 = 變量_完成大小 + 變量_dwSize
  RtlMoveMemory_寫整數 (參數_信息指針 + 48, 變量_完成大小, 4)
  ' 輸出調試文本 (參數_信息指針)
  .計次循環首 (取數組成員數 (多任務句柄), i)
    .如果真 (參數_信息指針 = 多任務句柄 [i])
      傳遞ID = i
    .如果真結束
  .計次循環尾 ()
  .如果真 (傳遞ID ≠ 0)
    程序_Call (變量_回調函數地址, 傳遞ID, 1, 變量_文件大小, 變量_完成大小)
    ' 調用子程序 (變量_回調函數地址, , , 傳遞ID, 1, 變量_文件大小, 變量_完成大小)
  .如果真結束
  RtlMoveMemory_讀整數 (變量_任務狀態, 參數_信息指針 + 32, 4)
  LeaveCriticalSectionHTTP (變量_許可證)
  .判斷循環首 (變量_任務狀態 = 2)
    EnterCriticalSectionHTTP (變量_許可證)
    RtlMoveMemory_讀整數 (變量_任務狀態, 參數_信息指針 + 32, 4)
    LeaveCriticalSectionHTTP (變量_許可證)
    .如果真 (變量_任務狀態 = -1 或 變量_任務狀態 = 1)
      跳出循環 ()
    .如果真結束
    WaitForSingleObjectHTTP (-1, 100)
  .判斷循環尾 ()
.循環判斷尾 (變量_任務狀態 ≠ -1 且 變量_任務狀態 ≠ 1)
HeapFree (變量_堆, 0, 變量_szTemp)
InternetCloseHandleHTTP (變量_hConnect)
InternetCloseHandleHTTP (變量_hOpen)
EnterCriticalSectionHTTP (變量_許可證)
RtlMoveMemory_讀整數 (變量_當前線程數, 參數_信息指針 + 28, 4)
RtlMoveMemory_寫整數 (參數_信息指針 + 28, 變量_當前線程數 - 1, 4)
LeaveCriticalSectionHTTP (變量_許可證)
.子程序 Call, 整數型, 公開
.參數 參數_地址, 整數型
.參數 參數_一, 整數型
.參數 參數_二, 整數型
.參數 參數_三, 整數型
置入代碼 ({ 201, 88, 135, 4, 36, 255, 224 })
返回 (0)
.子程序 程序_Call, 整數型
.參數 子程序地址, 整數型
.參數 參數1, 整數型, 可空
.參數 參數2, 整數型, 可空
.參數 參數3, 整數型, 可空
.參數 參數4, 整數型, 可空
.參數 參數5, 整數型, 可空
.參數 參數6, 整數型, 可空
.參數 參數7, 整數型, 可空
.參數 參數8, 整數型, 可空
.參數 參數9, 整數型, 可空
.參數 參數10, 整數型, 可空
.參數 參數11, 整數型, 可空
.參數 參數12, 整數型, 可空
.參數 參數13, 整數型, 可空
.參數 參數14, 整數型, 可空
.參數 參數15, 整數型, 可空
置入代碼 ({ 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 })
返回 (0)

4.多任務下載

?
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
.版本 2
.程序集 下載_多任務, , 公開
.程序集變量 總計次, 整數型
.子程序 _初始化, , , 當基于本類的對象被創建后,此方法會被自動調用
總計次 = 0
.子程序 _銷毀, , , 當基于本類的對象被銷毀前,此方法會被自動調用
.子程序 下載_多任務, , 公開
.參數 下載地址, 文本型
.參數 保存路徑, 文本型
.參數 線程數, 整數型
.參數 回調函數地址, 整數型, 可空, 無返回值,傳遞ID=整數型,信息=整數型,文件大小=整數型,完成大小=整數型
.局部變量 a, 整數型
總計次 = 總計次 + 1
加入成員 (配備文本變量, 到文本 (總計次))
a = 多線程_HTTP下載_開始_多任務 (下載地址, 保存路徑, 線程數, 回調函數地址)
加入成員 (多任務句柄, a)
.子程序 暫停下載, , 公開
.參數 暫停ID, 整數型
多線程_HTTP下載_暫停 (多任務句柄 [暫停ID])
.子程序 全部暫停, , 公開
.局部變量 i, 整數型
.計次循環首 (取數組成員數 (多任務句柄), i)
  多線程_HTTP下載_暫停 (多任務句柄 [i])
.計次循環尾 ()
.子程序 停止下載
.參數 停止ID, 整數型
多線程_HTTP下載_停止 (多任務句柄 [停止ID])
.子程序 全部停止, , 公開
.局部變量 i, 整數型
.計次循環首 (取數組成員數 (多任務句柄), i)
  多線程_HTTP下載_停止 (多任務句柄 [i])
.計次循環尾 ()
.子程序 繼續下載, , 公開
.參數 繼續ID, 整數型
多線程_HTTP下載_繼續 (多任務句柄 [繼續ID])
.子程序 全部繼續, , 公開
.局部變量 i, 整數型
.計次循環首 (取數組成員數 (多任務句柄), i)
  多線程_HTTP下載_繼續 (多任務句柄 [i])
.計次循環尾 ()
.子程序 重試下載, , 公開
.參數 重試ID, 整數型
多線程_HTTP下載_停止 (多任務句柄 [重試ID])
多線程_HTTP下載_繼續 (多任務句柄 [重試ID])
.子程序 全部重試, , 公開
.局部變量 i, 整數型
.計次循環首 (取數組成員數 (多任務句柄), i)
  多線程_HTTP下載_停止 (多任務句柄 [i])
  多線程_HTTP下載_繼續 (多任務句柄 [i])
.計次循環尾 ()

以上是模塊代碼,下面是窗口程序集代碼。

多線程多任務下載源碼

需要加載上面的多線程多任務下載的模塊

?
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
.版本 2
.支持庫 iext
.程序集 窗口程序集1
.程序集變量 計次, 整數型
.程序集變量 下載, 下載_多任務
.程序集變量 速度1, 整數型
.程序集變量 速度2, 整數型
.子程序 內部回調, , 公開
.參數 傳遞ID, 整數型
.參數 信息
.參數 文件大小
.參數 完成大小
.局部變量 索引, 整數型
.局部變量 顯示完成大小, 文本型
.局部變量 顯示文件大小, 文本型
.如果真 (傳遞ID > 3 或 傳遞ID < 0)
  返回 ()
.如果真結束
.如果真 (傳遞ID = 1)
  索引 = 0
.如果真結束
.如果真 (傳遞ID = 2)
  索引 = 1
.如果真結束
.如果真 (傳遞ID = 3)
  索引 = 2
.如果真結束
.如果真 (四舍五入 (完成大小, 1) < 1024)
  顯示文件大小 = 到文本 (四舍五入 (文件大小, 1)) + “ Byte”
.如果真結束
.如果真 (四舍五入 (完成大小, 1) > 1024)
  顯示文件大小 = 到文本 (四舍五入 (文件大小 ÷ 1024, 1)) + “ KB”
.如果真結束
.如果真 (四舍五入 (完成大小 ÷ 1024, 1) > 1024)
  顯示文件大小 = 到文本 (四舍五入 (文件大小 ÷ 1024 ÷ 1024, 1)) + “ MB”
.如果真結束
.如果真 (四舍五入 (文件大小 ÷ 1024 ÷ 1024, 1) > 1024)
  顯示文件大小 = 到文本 (四舍五入 (文件大小 ÷ 1024 ÷ 1024 ÷ 1024, 1)) + “ GB”
.如果真結束
.如果真 (四舍五入 (完成大小, 1) < 1024)
  顯示完成大小 = 到文本 (四舍五入 (完成大小, 1)) + “ Byte”
.如果真結束
.如果真 (四舍五入 (完成大小, 1) > 1024)
  顯示完成大小 = 到文本 (四舍五入 (完成大小 ÷ 1024, 1)) + “ KB”
.如果真結束
.如果真 (四舍五入 (完成大小 ÷ 1024, 1) > 1024)
  顯示完成大小 = 到文本 (四舍五入 (完成大小 ÷ 1024 ÷ 1024, 1)) + “ MB”
.如果真結束
.如果真 (四舍五入 (完成大小 ÷ 1024 ÷ 1024, 1) > 1024)
  顯示完成大小 = 到文本 (四舍五入 (完成大小 ÷ 1024 ÷ 1024 ÷ 1024, 1)) + “ GB”
.如果真結束
超級列表框1.置標題 (索引, 2, 顯示完成大小)
超級列表框1.置標題 (索引, 3, 顯示文件大小)
超級列表框1.置標題 (索引, 4, 到文本 (到整數 (完成大小 ÷ 文件大小 × 100)) + “%”)
超級列表框1.置標題 (索引, 5, “下載中”)
.子程序 _下載按鈕_被單擊
.局部變量 索引, 整數型
.如果真 (輸入編輯框.內容 = “”)
  返回 ()
.如果真結束
下載.下載_多任務 (輸入編輯框.內容, “C:\Users\Administrator\Desktop\” + 取網絡文件名稱 (輸入編輯框.內容), 10, 到整數 (&內部回調))
計次 = 計次 + 1
索引 = 超級列表框1.插入表項 (, , , , , )
超級列表框1.置標題 (索引, 0, 到文本 (計次))
超級列表框1.置標題 (索引, 1, 取網絡文件名稱 (輸入編輯框.內容))
.子程序 程序_Call, 整數型
.參數 子程序地址, 整數型
.參數 參數1, 整數型, 可空
.參數 參數2, 整數型, 可空
.參數 參數3, 整數型, 可空
.參數 參數4, 整數型, 可空
.參數 參數5, 整數型, 可空
.參數 參數6, 整數型, 可空
.參數 參數7, 整數型, 可空
.參數 參數8, 整數型, 可空
.參數 參數9, 整數型, 可空
.參數 參數10, 整數型, 可空
.參數 參數11, 整數型, 可空
.參數 參數12, 整數型, 可空
.參數 參數13, 整數型, 可空
.參數 參數14, 整數型, 可空
.參數 參數15, 整數型, 可空
置入代碼 ({ 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 })
返回 (0)
.子程序 取網絡文件名稱, 文本型
.參數 路徑, 文本型
.局部變量 a, 文本型, , "0"
a = 分割文本 (路徑, “/”, )
返回 (a [取數組成員數 (a)])
.子程序 _標簽1_鼠標左鍵被放開, 邏輯型
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態, 整數型
置剪輯板文本 (標簽1.標題)
輸入編輯框.內容 = 標簽1.標題
.子程序 _標簽2_鼠標左鍵被放開, 邏輯型
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態, 整數型
置剪輯板文本 (標簽2.標題)
輸入編輯框.內容 = 標簽2.標題
.子程序 _標簽3_鼠標左鍵被放開, 邏輯型
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態, 整數型
置剪輯板文本 (標簽3.標題)
輸入編輯框.內容 = 標簽3.標題
.子程序 _暫停按鈕_被單擊
下載.全部暫停 ()
.子程序 _繼續下載按鈕_被單擊
下載.全部繼續 ()
.子程序 _停止按鈕_被單擊
下載.全部停止 ()

運行結果:

易語言多線程多任務下載器的代碼

總結

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

延伸 · 閱讀

精彩推薦
  • 易語言易語言關于程序進程和線程的基礎知識

    易語言關于程序進程和線程的基礎知識

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

    三葉資源網6662022-02-24
  • 易語言易語言獲取指定磁盤的名稱

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

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

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

    易語言生成exe文件的方法

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

    易語言教程網14792022-03-01
  • 易語言實例操作易語言載入窗口

    實例操作易語言載入窗口

    在本文中小編給大家整理的是關于易語言載入窗口的教程和步驟內容,需要的可以跟著學習下...

    易語言教程網19162022-03-02
  • 易語言一步一步跟我學易語言之關于變量

    一步一步跟我學易語言之關于變量

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

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

    一步一步跟我學易語言之第二個易程序菜單設計

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

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

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

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

    易語言幫助手冊9092022-01-12
  • 易語言易語言設置進度條邊框樣式的方法

    易語言設置進度條邊框樣式的方法

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

    易語言幫助手冊4422022-01-20
主站蜘蛛池模板: 西川av在线一区二区三区 | 男女羞羞在线观看 | 一区二区三区四区五区中文字幕 | 欧美城网站地址 | 综合在线视频 | 欧美高清一级片 | 91精品国产一区二区在线观看 | 天天夜干 | 日韩精品久久久 | 最新一级毛片 | 真人一级毛片免费 | 久久丝袜脚交足黄网站免费 | 在线亚洲免费 | 欧美成人久久 | 亚欧在线免费观看 | 高颜值美女啪啪 | 在线视频 欧美日韩 | 亚洲91网| 国产在线精品一区二区夜色 | 男女做性免费网站 | 国产精品久久久久久久久久久久久久久久 | 毛片免费看电影 | 欧美成网站 | 一本色道久久久888 青青草好吊色 | 久久久麻豆 | 99欧美精品 | 9999视频| 国产精品亚洲欧美一级在线 | 欧美成人亚洲 | 在线a毛片免费视频观看 | 欧美色另类 | 中文字幕极速在线观看 | 成人资源在线观看 | 欧美成人精品一区二区 | 午夜激情视频免费 | 成人免费国产视频 | 中文字幕免费在线观看视频 | 欧美日韩免费看 | 欧美一区黄 | 激情网站在线观看 | 黄色作爱视频 |