sách gpt4 ăn đã đi

mã triển khai tải xuống đa luồng vbs

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 34 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN mã triển khai tải xuống đa luồng vbs này được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm đến bài viết này thì nhớ like nhé.

Nói vậy nhưng tôi vẫn còn thời gian để luyện tập, và bước đầu nhận ra thứ mà tôi nghĩ là tải "đa luồng". (Về việc có đa luồng không, các bạn có thể tham khảo link ở tầng 12) Để tránh dư thừa, một số phần kiểm tra lỗi được lược bỏ. Mình thấy nó không có nhiều công dụng thực tế. Anh em quan tâm có thể cùng nhau tìm hiểu và thảo luận. Chào mừng mọi người sửa lỗi cho tôi

Sao chép mã mã như sau

'by wankoilz url=InputBox("Nhập địa chỉ tải xuống đầy đủ:") threadCount=InputBox("Nhập số lượng chủ đề (không quá 10, quá nhiều sẽ cồng kềnh):") fileName=GetFileName(url) filePath=GetFilePath (WScript. ScriptFullName) Đặt ohttp=CreateObject("msxml2.xmlhttp") Đặt ado=CreateObject("adodb.stream") Đặt fso=CreateObject("scripting.filesystemobject") ado.Type=1 ado.Mode=3 ado.Open ohttp.open "Head",url,True ohttp.send Do While ohttp.readyState<>4 WScript.Sleep 200 Loop ' Nhận kích thước tệp fileSize=ohttp.getResponseHeader("Content-Length") ohttp.abort 'Tạo một tệp tạm thời có cùng kích thước với tệp đã tải xuống để ado sau viết lại trong các phần fso.CreateTextFile(filePath&"TmpFile",True,False).Write(Space(fileSize)) ado.LoadFromFile(filePath&"TmpFile" ) blockSize =Fix(fileSize/threadCount):remainderSize=fileSize-threadCount*blockSize upbound=threadCount-1 'Xác định một mảng chứa các đối tượng msxml2.xmlhttp, số lượng thành viên là số lượng luồng' Không thể trực tiếp Dim tên mảng (tên biến), ở đây chúng tôi sử dụng Thực thi để xử lý nó Thực thi( "Dim arrHttp("&upbound&" )") For i=0 Đến UBound(arrHttp) startpos=i*blockSize endpos=(i+1)*blockSize-1 Nếu i=UBound(arrHttp) Thì endpos=endpos+remainderSize Đặt arrHttp(i)=CreateObject("msxml2.xmlhttp") arrHttp(i).open "Get",url,True 'Tải xuống theo phân đoạn arrHttp(i).setRequestHeader "Phạm vi","bytes="&startpos&"-"&endpos arrHttp(i).send Tiếp theo Thực hiện WScript.Sleep 200 For i=0 To UBound(arrHttp) Nếu arrHttp(i).readystate=4 Then 'Bất cứ khi nào một chuỗi hoàn tất tải xuống, hãy ghi nó vào vị trí tương ứng của tệp tạm thời ado. Vị trí=i*blockSize MsgBox "Chủ đề"&i&"Tải xuống đã hoàn tất! " ado.Write arrHttp(i).responseBody arrHttp(i).abort Complete=complete+1 Kết thúc Nếu tiếp theo Nếu hoàn thành=UBound(arrHttp)+1 Sau đó thoát Thực hiện timeout=timeout+1 Nếu hết thời gian chờ=5*30 Thì 'Theo vào cài đặt kích thước tệp MsgBox "Hết thời gian chờ 30 giây! " WScript.Quit End If Loop If fso.FileExists(filePath&fileName) Then fso.DeleteFile(filePath&fileName) fso.DeleteFile(filePath&"TmpFile") ado.SaveToFile(filePath&fileName) MsgBox "Tải xuống tệp đã hoàn tất! " Hàm GetFileName(url) arrTmp=Split(url,"/") GetFileName=arrTmp(UBound(arrTmp)) Hàm kết thúc Hàm GetFilePath(fullname) arrTmp=Split(fullname,"\") For i=0 To UBound(arrTmp )-1 GetFilePath=GetFilePath&arrTmp(i)&"\" Chức năng kết thúc tiếp theo.

Địa chỉ tải xuống thử nghiệm:

Sao chép mã mã như sau

http://www.zzvips.com/images/logo.gif 。

VBS triển khai bổ sung đa luồng Hôm nay có người gửi email hỏi tôi một câu hỏi: Tôi muốn hỏi liệu chức năng INPUTBOX trong VBS có thể đóng khi hết thời gian chờ không? Nếu vậy thì nên đóng hộp nhập liệu khi hết thời gian chờ như thế nào? Cảm ơn bạn rất nhiều. Thoạt nhìn, điều này có vẻ như không thể, vì bản thân hàm inputBox không có tham số hết thời gian chờ và chương trình sẽ đợi inputBox quay trở lại trước khi tiếp tục chạy. . Nếu VBS có thể triển khai đa luồng bằng ngôn ngữ cấp cao... Thật không may, VBS không thể triển khai đa luồng, nhưng bạn có thể sử dụng phương thức setTimeout để mô phỏng "đa luồng".

Sao chép mã mã như sau

Dim IE Set IE = CreateObject("InternetExplorer.Application") IE.Navigate "about:blank" Set window = IE.Document.parentWindow id = window.setTimeout(GetRef("on_timeout"),3000,"VBScript") name = InputBox("Vui lòng nhập tên của bạn","InputBox Timeout") window.clearTimeout id If name <> "" Then MsgBox "Hello," & name IE.Quit 'By Demon 'http://demon.tw Sub on_timeout() Dim WshShell set WshShell = CreateObject("wscript.Shell") WshShell.SendKeys "{ESC}" End Sub 。

Sử dụng phương thức setTimeout để đặt thời gian chờ 3 giây và sử dụng phương thức SendKeys để gửi phím ESC để kết thúc Hộp đầu vào sau 3 giây. Tất nhiên, việc sử dụng SendKeys rất không đáng tin cậy. Tôi hiếm khi sử dụng phương thức SendKeys vì nó đưa ra quá nhiều giả định. Điều gì sẽ xảy ra nếu inputBox không phải là cửa sổ đang hoạt động? SendKeys được sử dụng ở đây chỉ vì sự đơn giản của chương trình và có thể được thay thế bằng chính tập lệnh kết thúc. Theo cách tương tự, nếu bạn muốn triển khai sự kiện Hẹn giờ trong VB trong VBS, bạn có thể sử dụng phương thức setInterval. Tôi sẽ không viết ví dụ mà hãy tự đọc tài liệu. Liên kết tham khảo: Phương thức setTimeout (window, Window Constructor).

Cuối cùng, bài viết về mã triển khai tải xuống đa luồng VBS này kết thúc tại đây. Nếu bạn muốn biết thêm về mã triển khai tải xuống đa luồng VBS, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. trong tương lai! .

34 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress