تقييم الموضوع :
  • 1 أصوات - بمعدل 4
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] ايقاف مؤقت للتحميل واستناف من حيث توقف
#1
السلام عليكم
سامحوني متغيب منشغل جدا هذه الايام

استخدم المكتبة WebClient في تحميل ملف من الويب

PHP كود :
Dim httpclient As New WebClient
 httpclient
.DownloadFileAsync(New Uri("http://tvquranserver.com/download/tilawa_03/TvQuran.com__107.mp3"), _
                                     
("C:\download\TvQuran.com__107.mp3")) 

صفحة المكتبة علي ميكروسوفت

اريد اعرف كيف اعمل ايقاف مؤقت لتحميل الملف ثم الاستناف من حيث توقف التحميل

وجزاكم الله تعالي خيرا
الرد }}}
تم الشكر بواسطة:
#2
Rainbow 
بالنسبة الي مكتبة WebClient يمكنك تتبع الحلول بالرابط التالي How to make a System.Net.WebClient with pause, and resume?

RolleyesRolleyesRolleyes
{‏‏ يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنكُمْ وَالَّذِينَ أُوتُوا الْعِلْمَ دَرَجَاتٍ‏ }

 " Mohamed M. Bedair     -     " Abu Anas
Genius Live , Egypt
الرد }}}
تم الشكر بواسطة:
#3
Rainbow 
وللفائدة هذه هي الاكواد التي استخدمها بعيدا عن WebClient

قم بإستدعاء المكتبات التالية
PHP كود :
Imports System.Collections.Generic
Imports System
.Data
Imports System
.Drawing
Imports System
.Text
Imports System
.Windows.Forms
Imports System
.Net
Imports System
.IO
Imports System
.Threading 
في قسم التصاريح قم بتعريف المتغيرات التالية
PHP كود :
Private thrDownload As Thread
        
Private strResponse As Stream
        
Private strLocal As Stream
        
Private webRequest As HttpWebRequest
        
Private webResponse As HttpWebResponse
        
Private Shared PercentProgress As Integer
        
Private Delegate Sub UpdateProgessCallback(BytesRead As Int64TotalBytes As Int64)
        Private 
goPause As Boolean False 
كود زر التحمييل
PHP كود :
Private Sub btnDownload_Click(sender As ObjectAs EventArgs)
            If 
thrDownload IsNot Nothing AndAlso thrDownload.ThreadState ThreadState.Running Then
MessageBox
.Show _ 
("A download is already running"_
 
"Download in progress"MessageBoxButtons.OKMessageBoxIcon.[Error])
            Else
                
lblProgress.Text "Download Starting"
                
thrDownload = New Thread(New ParameterizedThreadStart(AddressOf Download))
                
thrDownload.Start(0)
                
btnPauseResume.Enabled True
                btnPauseResume
.Text "Pause"
            
End If
        
End Sub 
إجراءات التحديث والتحميل
PHP كود :
Private Sub UpdateProgress(BytesRead As Int64TotalBytes As Int64)
            
PercentProgress Convert.ToInt32((BytesRead 100) / TotalBytes)
            
prgDownload.Value PercentProgress
            lblProgress
.Text "Downloaded " BytesRead " out of " TotalBytes " (" PercentProgress "%)"
        
End Sub
        
Private Sub Download(startPoint As Object)
            Try
                
Dim startPointInt As Integer Convert.ToInt32(startPoint)
                
webRequest DirectCast(WebRequest.Create(txtUrl.Text), HttpWebRequest)
                
webRequest.AddRange(startPointInt)
                
webRequest.Credentials CredentialCache.DefaultCredentials
                webResponse 
DirectCast(webRequest.GetResponse(), HttpWebResponse)
                
Dim fileSize As Int64 webResponse.ContentLength
                strResponse 
webResponse.GetResponseStream()
                If 
startPointInt 0 Then
                    strLocal 
= New FileStream(txtPath.TextFileMode.CreateFileAccess.WriteFileShare.None)
                Else
                    
strLocal = New FileStream(txtPath.TextFileMode.AppendFileAccess.WriteFileShare.None)
                
End If
                
Dim bytesSize As Integer 0
                Dim downBuffer 
As Byte() = New Byte(2047) {}
                While (
InlineAssignHelper(bytesSizestrResponse.Read(downBuffer0downBuffer.Length))) > 0
                    strLocal
.Write(downBuffer0bytesSize)
                    
Me.Invoke(New UpdateProgessCallback(AddressOf Me.UpdateProgress), 
                                        
New Object() {strLocal.LengthfileSize startPointInt})
                    If 
goPause True Then
                        
Exit While
                    
End If
                
End While
            Finally
                
strResponse.Close()
                
strLocal.Close()
            
End Try
        
End Sub
        
Private Shared Function InlineAssignHelper(Of T)(ByRef target As Tvalue As T) As T
            target 
value
            
Return value
        End 
Function
                Public 
Sub New()
            
InitializeComponent()
        
End Sub 
زر الإيقاف
PHP كود :
        Private Sub btnStop_Click(sender As ObjectAs EventArgs)
            
thrDownload.Abort()
            
webResponse.Close()
            
strResponse.Close()
            
strLocal.Close()
            
prgDownload.Value 0
            lblProgress
.Text "Download Stopped"
            
btnPauseResume.Enabled False
        End Sub 
زر التوقف المؤقت والاستمرار
PHP كود :
Private Sub btnPauseResume_Click(sender As ObjectAs EventArgs)
            If 
thrDownload IsNot Nothing Then
                
If btnPauseResume.Text "Pause" Then
                    goPause 
True
                    btnPauseResume
.Text "Resume"
                    
webResponse.Close()
                    
strResponse.Close()
                    
strLocal.Close()
                    
thrDownload.Abort()
                Else
                    
goPause False
                    btnPauseResume
.Text "Pause"
                    
Dim startPoint As Long 0
                    
If File.Exists(txtPath.TextThen
                        startPoint 
= New FileInfo(txtPath.Text).Length
                    
Else
                        
MessageBox.Show("The file you choosed to resume doesn't exist."
                                                
"Could not resume"MessageBoxButtons.OKMessageBoxIcon.[Error])
                    
End If
                    
lblProgress.Text "Download Resuming"
                    
thrDownload = New Thread(New ParameterizedThreadStart(AddressOf Download))
                    
thrDownload.Start(startPoint)
                    
btnPauseResume.Enabled True
                End 
If
            Else
                
MessageBox.Show("A download does not appear to be in progress."
                                
"Could not pause"MessageBoxButtons.OKMessageBoxIcon.[Error])
            
End If
        
End Sub 

RolleyesRolleyesRolleyes
{‏‏ يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنكُمْ وَالَّذِينَ أُوتُوا الْعِلْمَ دَرَجَاتٍ‏ }

 " Mohamed M. Bedair     -     " Abu Anas
Genius Live , Egypt
الرد }}}
تم الشكر بواسطة: kslawy , Hossam 2005 , Sajad
#4
جزاك الله خيرا وجعلة في موازين حسناتك
طيب سؤال بما انك جربت هذه الطريقة
عند انقطاع النت اثناء التحميل او حدوث اي مشكلة هل يتم عمل توقف مؤقت للتحميل ام يتم عمل الغاء
الرد }}}
تم الشكر بواسطة:
#5
(08-03-14, 11:48 AM)ali.alfoly كتب : جزاك الله خيرا وجعلة في موازين حسناتك
طيب سؤال بما انك جربت هذه الطريقة
عند انقطاع النت اثناء التحميل او حدوث اي مشكلة هل يتم عمل توقف مؤقت للتحميل ام يتم عمل الغاء

لا ... لن يتم عمل توقف مؤقت ولكن يمكن برمجتها

RolleyesRolleyesRolleyes
{‏‏ يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنكُمْ وَالَّذِينَ أُوتُوا الْعِلْمَ دَرَجَاتٍ‏ }

 " Mohamed M. Bedair     -     " Abu Anas
Genius Live , Egypt
الرد }}}
تم الشكر بواسطة:
#6
(08-03-14, 11:48 AM)ali.alfoly كتب : جزاك الله خيرا وجعلة في موازين حسناتك
طيب سؤال بما انك جربت هذه الطريقة
عند انقطاع النت اثناء التحميل او حدوث اي مشكلة هل يتم عمل توقف مؤقت للتحميل ام يتم عمل الغاء

اضف Module1
كود :
Module Module1
    Private Declare Function InternetGetConnectedState Lib "wininet" (ByRef dwflags As Long, ByVal dwReserved As Long) As Long
    Private Const CONNECT_LAN As Long = &H2
    Private Const CONNECT_MODEM As Long = &H1
    Private Const CONNECT_PROXY As Long = &H4
    Private Const CONNECT_OFFLINE As Long = &H20
    Private Const CONNECT_CONFIGURED As Long = &H40
    Private Const CONNECT_RAS As Long = &H10


    Public Function IsWebConnected(Optional ByRef ConnType As String = "") As Boolean
        Dim dwflags As Long
        Dim WebTest As Boolean
        WebTest = InternetGetConnectedState(dwflags, 0&)
        Select Case WebTest
            Case dwflags And CONNECT_LAN : ConnType = "LAN"
            Case dwflags And CONNECT_MODEM : ConnType = "Modem"
            Case dwflags And CONNECT_PROXY : ConnType = "Proxy"
            Case dwflags And CONNECT_OFFLINE : ConnType = "Offline"
            Case dwflags And CONNECT_CONFIGURED : ConnType = "Configured"
            Case dwflags And CONNECT_RAS : ConnType = "Remote"
        End Select
        IsWebConnected = WebTest

    End Function
End Module
كود :
If IsWebConnected() Then
            'أذا كان الانتترنت يعمل يمكنت ودع كود لاستكمال التحميل بعد توقف الانترنت
        Else
            'اذا توقف الانترنت عن العمل يمكنك وضع كود التوقف اذاتوقف الانترنت
        End If
        'يفضل وضع الكود فى timer
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مشكلة توقف التقارير بعد النتقال لفجول 2012 ahmedramzyaish 0 765 17-04-22, 08:12 AM
آخر رد: ahmedramzyaish
  تفادي توقف البرنامج بعد فصل المودم ADAM12 3 1,215 19-12-21, 03:45 AM
آخر رد: ADAM12
  كود ايقاف صوت المعالج عند التنقل برز enter بسام محمدغانم 2 1,212 23-10-21, 01:32 AM
آخر رد: بسام محمدغانم
  ايقاف التايمر بعد عمل معين ابو روضة 10 2,801 01-06-21, 05:05 AM
آخر رد: سعود
Heart [كود] عمل برنامج مؤقت تنازلي shado1796 4 8,279 10-03-21, 02:46 AM
آخر رد: Kareem2021
  كود ايقاف المنافذ new_programer 0 1,018 12-06-20, 11:09 PM
آخر رد: new_programer
  [سؤال] هل استطيع اسناد القيم التي في الداتا جريد في جدول في الذاكره بشكل مؤقت بسام محمدغانم 2 1,495 25-05-20, 03:39 PM
آخر رد: بسام محمدغانم
  حدث توقف ال textchanged makky 0 787 17-05-20, 01:20 AM
آخر رد: makky
  مشكلة توقف شاشة كرستال ريبورت بسام محمدغانم 0 1,138 13-03-20, 04:20 AM
آخر رد: بسام محمدغانم
  [VB.NET] ايقاف عمل زر الخروج محمد بوقزاحة 4 1,977 16-09-19, 05:51 PM
آخر رد: AbdoDabak

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم