الزعيم مؤسس المنتدى
نـوعـي : عدد المساهمات : 67 نقاط : 2266 تاريخ التسجيل : 15/02/2013 الموقع : مؤسس منتدى عرب ويب التطويري
| موضوع: سورس كود برنامج تحميل الملفات vb.net 2008 10/05/13, 05:53 pm | |
| [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]Required Tools : BackgroundWorker1, SavefileDialog1 ------------------------------------------- Name Spaces : Imports System.Net --------------------------- - الكود:
-
Dim whereToSave As String Delegate Sub ChangeTextsSafe(ByVal length As Long, ByVal position As Integer, ByVal percent As Integer, ByVal speed As Double) Delegate Sub DownloadCompleteSafe(ByVal cancelled As Boolean) ---------------------------- - الكود:
-
Public Sub DownloadComplete(ByVal cancelled As Boolean) Me.txtFileName.Enabled = True Me.btnDownload.Enabled = True Me.btnCancel.Enabled = False If cancelled Then Me.Label4.Text = "Cancelled" MessageBox.Show("Download aborted", "Aborted") Else Me.Label4.Text = "Successfully downloaded" MessageBox.Show("Successfully downloaded!") End If Me.ProgressBar1.Value = 0 Me.Label5.Text = "Downloading: " Me.Label6.Text = "Save to: " Me.Label3.Text = "File size: " Me.Label2.Text = "Download speed: " Me.Label4.Text = "" End Sub --------------------------- - الكود:
-
Public Sub ChangeTexts(ByVal length As Long, ByVal position As Integer, ByVal percent As Integer, ByVal speed As Double) Me.Label3.Text = "File Size: " & Math.Round((length / 1024), 2) & " KB" Me.Label5.Text = "Downloading: " & Me.txtFileName.Text Me.Label4.Text = "Downloaded " & Math.Round((position / 1024), 2) & " KB of " & Math.Round((length / 1024), 2) & "KB (" & Me.ProgressBar1.Value & "%)" If speed = -1 Then Me.Label2.Text = "Speed: calculating..." Else Me.Label2.Text = "Speed: " & Math.Round((speed / 1024), 2) & " KB/s" End If Me.ProgressBar1.Value = percent End Sub -------------------------- - الكود:
-
Private Sub btnDownload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDownload.Click If Me.txtFileName.Text <> "" AndAlso Me.txtFileName.Text.StartsWith("http://") Then Me.SaveFileDialog1.FileName = Me.txtFileName.Text.Split("/"c)(Me.txtFileName.Text.Split("/"c).Length - 1) If Me.SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Me.whereToSave = Me.SaveFileDialog1.FileName Me.SaveFileDialog1.FileName = "" Me.Label6.Text = "Save to: " & Me.whereToSave Me.txtFileName.Enabled = False Me.btnDownload.Enabled = False Me.btnCancel.Enabled = True Me.BackgroundWorker1.RunWorkerAsync() End If Else MessageBox.Show("Please insert valid URL for download") End If End Sub ----------------------------- - الكود:
-
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Dim theResponse As HttpWebResponse Dim theRequest As HttpWebRequest Try theRequest = WebRequest.Create(Me.txtFileName.Text) theResponse = theRequest.GetResponse Catch ex As Exception MessageBox.Show("An error occurred while downloading file. Possibe causes:" & ControlChars.CrLf & _ "1) File doesn't exist" & ControlChars.CrLf & _ "2) Remote server error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Dim cancelDelegate As New DownloadCompleteSafe(AddressOf DownloadComplete) Me.Invoke(cancelDelegate, True) Exit Sub End Try Dim length As Long = theResponse.ContentLength Dim safedelegate As New ChangeTextsSafe(AddressOf ChangeTexts) Me.Invoke(safedelegate, length, 0, 0, 0) Dim writeStream As New IO.FileStream(Me.whereToSave, IO.FileMode.Create) Dim nRead As Integer Dim speedtimer As New Stopwatch Dim currentspeed As Double = -1 Dim readings As Integer = 0 Do If BackgroundWorker1.CancellationPending Then Exit Do End If speedtimer.Start() Dim readBytes(4095) As Byte Dim bytesread As Integer = theResponse.GetResponseStream.Read(readBytes, 0, 4096) nRead += bytesread Dim percent As Short = (nRead * 100) / length Me.Invoke(safedelegate, length, nRead, percent, currentspeed) If bytesread = 0 Then Exit Do writeStream.Write(readBytes, 0, bytesread) speedtimer.Stop() readings += 1 If readings >= 5 Then currentspeed = 20480 / (speedtimer.ElapsedMilliseconds / 1000) speedtimer.Reset() readings = 0 End If Loop theResponse.GetResponseStream.Close() writeStream.Close() If Me.BackgroundWorker1.CancellationPending Then IO.File.Delete(Me.whereToSave) Dim cancelDelegate As New DownloadCompleteSafe(AddressOf DownloadComplete) Me.Invoke(cancelDelegate, True) Exit Sub End If Dim completeDelegate As New DownloadCompleteSafe(AddressOf DownloadComplete) Me.Invoke(completeDelegate, False) End Sub ------------------- - الكود:
-
Private Sub mainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Label4.Text = "" End Sub ----------------------- - الكود:
-
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click Me.BackgroundWorker1.CancelAsync() End Sub | |
|
الزعيم مؤسس المنتدى
نـوعـي : عدد المساهمات : 67 نقاط : 2266 تاريخ التسجيل : 15/02/2013 الموقع : مؤسس منتدى عرب ويب التطويري
| موضوع: رد: سورس كود برنامج تحميل الملفات vb.net 2008 01/07/13, 03:04 am | |
| - الكود:
-
الكود منقول من موقع عرب ويب | |
|
مصطفى السعدي
نـوعـي : عدد المساهمات : 1 نقاط : 5 تاريخ التسجيل : 04/09/2013
| موضوع: رد: سورس كود برنامج تحميل الملفات vb.net 2008 04/09/13, 10:14 am | |
| اخي الزعيم : اولا شكرا لك على افتتاح هذا المنتدى , واتمنى ان تنجح في طرحك على الاعضاء وان يشتهر هذا المنتدى ليكون مرجعية لكل مبرمجين العرب وحتى غير العرب في الحقيفية هناك اعدد كبيرة من المنتديات المشابه لهذا المنتدى . لكن وللاسف بعد فترة قصيره نلاحظ انه تم إغلاقه . لهذا اتمنى منك اخي الزعيم ان تبذل قصر جهدك حتى يستمر هذا المنتدى في النهاية اتمنى لك التوفيق | |
|
الزعيم مؤسس المنتدى
نـوعـي : عدد المساهمات : 67 نقاط : 2266 تاريخ التسجيل : 15/02/2013 الموقع : مؤسس منتدى عرب ويب التطويري
| موضوع: رد: سورس كود برنامج تحميل الملفات vb.net 2008 07/09/13, 04:46 pm | |
| - مصطفى السعدي كتب:
- اخي الزعيم :
اولا شكرا لك على افتتاح هذا المنتدى , واتمنى ان تنجح في طرحك على الاعضاء وان يشتهر هذا المنتدى ليكون مرجعية لكل مبرمجين العرب وحتى غير العرب في الحقيفية هناك اعدد كبيرة من المنتديات المشابه لهذا المنتدى . لكن وللاسف بعد فترة قصيره نلاحظ انه تم إغلاقه . لهذا اتمنى منك اخي الزعيم ان تبذل قصر جهدك حتى يستمر هذا المنتدى في النهاية اتمنى لك التوفيق اهلا بك اخى مصطفى .. نتمنى لك اقامة طيبة في منتدانا .. أعدك بأن هذا المنتدى يكون مصدر معلومات في البرمجة وفي كل شيئ إن شاء الله ... | |
|