Bunu wininet.dll işlevlerini kullanarak yaptım. Maalesef kodumu işverene ait olduğu gibi yapıştıramam.
InternetOpen ve InternetOpenUrl'i kullanmaya başlamak için, içerik uzunluğunu almak üzere HttpQueryInfoLong'u kullanın ve ardından bir arabelleğe (128k'lık bir arabellek kullanarak) veriyi okumak, bir dosyaya veri yazmak ve ilerleme çubuğunu olarak güncelleştirmek için InternetReadFile'ı tekrar tekrar arayın. git.
Beyannameler başlamak için: Herhangi bir açıklama gerekiyorsa
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA" (ByVal hHttpRequest As Long, ByVal lInfoLevel As Long, ByRef sBuffer As Any, ByRef lBufferLength As Long, ByRef lIndex As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByRef Buffer As Any, ByVal lNumberOfBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternet As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_FLAG_RELOAD = &H80000000
Private Const INTERNET_FLAG_KEEP_CONNECTION = &H400000 ' use keep-alive semantics - required for NTLM proxy authentication
Private Const HTTP_QUERY_CONTENT_LENGTH = 5
Private Const HTTP_QUERY_FLAG_NUMBER = &H20000000
, bir yorum gönderin.
İlerleme çubuğunu görüntülemek basittir. Zorluk, indirme işleminin kendisinin ilerlemesini bulmaktır. Diğer bir deyişle, şu anki indirme durumunu sorgulamanın bir yolu olup olmadığını öğrenmek isterim:% 10 tamam mı, yoksa% 25 tamam mı ?. Şu anda sadece% 0 dolduğumda ve% 100 tamamlandı. Bu benim kullanıcılarım için çok yararlı değil. – mwolfe02
Güncellenmiş yanıtımı görün. Fazla değil ama bir şey. – JimmyPena