PDA

View Full Version : آموزش: دانلود با Inet و استفاده از Progress Bar



امین مستانی
چهارشنبه 01 شهریور 1391, 11:54 صبح
با عرض سلام
خودم خیلی وقت بود دنبال نمونه سورسش میگشتم و بالاخره پیداش کردم.
اینجا قرار میدم تا دوستان هم استفاده کنند.

مشخصات :

Add an Inet control and name it as InetFileDownload
Add a progressbar control and name it as FileDownloadProgress
Add a Command button and name it as cmdDownload


سورس کد :

Option Explicit

Private Sub cmdDownload_Click()
Screen.MousePointer = vbHourglass
FileDownloadProgress.Value = 0
FileDownloadProgress.Visible = True
DownloadFile "http://www.testsite.com/testfile.txt", App.Path & "\testfile.txt"
Screen.MousePointer = vbDefault
Call MsgBox("Download Completed.", vbInformation, App.Title)
FileDownloadProgress.Visible = False
End Sub

Private Sub Form_Load()
FileDownloadProgress.Visible = False
End Sub

Sub DownloadProgress(intPercent As String)
FileDownloadProgress.Value = intPercent
End Sub

Public Sub DownloadFile(strURL As String, strDestination As String)
Const CHUNK_SIZE As Long = 1024
Dim iFile As Integer
Dim lBytesReceived As Long
Dim lFileLength As Long
Dim strHeader As String
Dim b() As Byte
Dim I As Integer
DoEvents
With InetFileDownload
.URL = strURL
.Execute , "GET", , "Range: bytes=" & CStr(lBytesReceived) & "-" & vbCrLf
While .StillExecuting
DoEvents
Wend
strHeader = .GetHeader
End With
strHeader = InetFileDownload.GetHeader("Content-Length")
lFileLength = Val(strHeader)
DoEvents
lBytesReceived = 0
iFile = FreeFile()
Open strDestination For Binary Access Write As #iFile
Do
b = InetFileDownload.GetChunk(CHUNK_SIZE, icByteArray)
Put #iFile, , b
lBytesReceived = lBytesReceived + UBound(b, 1) + 1
DownloadProgress (Round((lBytesReceived / lFileLength) * 100))
DoEvents
Loop While UBound(b, 1) > 0
Close #iFile
End Sub

یا علی

aromega65
پنج شنبه 25 آبان 1391, 00:00 صبح
سلام با تشکر از دوست خوبمون
اینهم فایل نمونه
95001

aromega65
جمعه 26 آبان 1391, 10:48 صبح
سلام آقای مستانی
من یکی دو هفته ای هست که دنبال این کد میگشتم
از نمونه کد شما برای دانلود یه فایل استفاده کردم فقط یه مشکل بزرگ بعد از کامپایل کردن وجود داره
در سیستم هایی که vb6 نصب نشده وقتی برنامه اجرا میشه پیغام خطا مبنی بر پیدا نکردن MSINET.OCX میده
لطفاً اگه راه حلی سراغ دارید کمک کنید برای من خیلی ضروری از سایر دوستانی که اطلاع دارند هم تقاضا میکنم یه هم فکری کنید
قاعدتاً بایستی وقتی پروژه رو به EXE تبدیل میکنیم همه OCX , DLL مورد نیاز رو با خودش داشته باشه
در این مورد چرا این پیغام خطا رو میده؟

امین مستانی
جمعه 26 آبان 1391, 14:43 عصر
سلام علیکم


قاعدتاً بایستی وقتی پروژه رو به EXE تبدیل میکنیم همه OCX , DLL مورد نیاز رو با خودش داشته باشه

اینطوری نیست. شما باید فایل های مورد نیاز برنامه تون رو مثل DLL و OCX ها رو ابتدا توسط برنامه تو سیستم مقصد رجیستر کنید .

اگر از نرم افزار های ستاپ ساز استفاده کنید فایل های مورد نیاز پروژه تون رو خودش تشخیص میده و رجیستر میکنه . ولی بدون ستاپ ساز باید این کار رو توسط برنامه و با کدنویسی انجام بدید.
نمونه های زیادی تو سایت وجود داره که با سرچ میتونید پیدا شون کنید . البته نمونه های زیر هم بخونید بهتره .

http://barnamenevis.org/showthread.php?343232-%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86&highlight=%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1

http://barnamenevis.org/showthread.php?335684-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D8%AA-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1&highlight=%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1

http://barnamenevis.org/showthread.php?350647-%D9%81%DB%8C%D9%84%D9%85-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%BE%D8%B1%D8%AA%D8%A7%D8%A8%D9%84-%DA%A9%D8%B1%D8%AF%D9%86-%D9%BE%D8%B1%D9%88%DA%98%D9%87-vb6-(%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA%D 9%87%D8%A7%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%B4%D8%AF%D9%87-%D8%A8%D9%87-%D8%B1%DB%8C%D8%B3%D9%88%D8%B1%D8%B3-%D9%88-%D8%B1%D8%AC%D8%B3%D8%AA%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A2%D9%86%D9%87%D8%A7

http://barnamenevis.org/showthread.php?324184-%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AE%D9%84-%D8%AE%D9%88%D8%AF%D8%B4&highlight=%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1

http://barnamenevis.org/showthread.php?301426-OCX-%DB%8C%DA%A9-%D8%AF%D8%B1%D8%AF%D8%B3%D8%B1-%D8%A8%D8%B2%D8%B1%DA%AF-%D8%B4%D8%AF%D9%87&highlight=%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1

http://barnamenevis.org/showthread.php?304980-%D8%A7%D8%B1%D9%88%D8%B1-Run-Time-Error-13-%D9%85%D9%88%D9%82%D8%B9-%D8%A7%D8%AC%D8%B1%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%AF%DB%8C%DA%AF%D8%B1%DB%8C&highlight=%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1

http://barnamenevis.org/showthread.php?316189-%D9%85%D8%AE%D9%84%D9%88%D8%B7-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%A8%D8%A7-%D9%81%D8%A7%DB%8C%D9%84-exe-(%D8%AE%D9%88%D8%AF-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87)&highlight=%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1


موفق باشید