Problem mit WebDownloader in Visual Basic
lima-city → Forum → Programmiersprachen → Basic
anzeigen
auslese
bit
code
dank
edition
erneut fehler
gesamten datei
import
information
kleines problem
machen
maximum
problem
sekunde
sender
show
system
text
verlesen
-
Ich habe ein kleines Problem:
Ich habe einen WebDownloader mit VisualBasic entwickelt, alles perfekt, doch nun:
Eigentlich wollte ich wie die anderen Downloadmanager noch eine Speedanzeige!?
Wie kann ich dies machen Timer oder so?? Helft mir!
THX
bb -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dazu müsstest du erstmal noch ein paar Informationen liefern, z.B.
VB Version? Mit .NET Framework?
Welche Klasse, API etc. hast du verwendet um die Dateien herunterzuladen?
Wenn du mit Streams arbeitest, kannst du doch einfach die bisher geschriebene Stream-Größe abfragen. Die Größe der gesamten Datei kann man im Voraus auslesen lassen. -
Am besten hier mal mein Quelltext aus der Form1:
Imports System.Net Public Class Form1 Private WithEvents httpclient As webclient Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim save As New SaveFileDialog save.Title = ("Downloaded") save.ShowDialog() TextBox2.Text = save.FileName End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click httpclient = New WebClient Dim SourceURL = TextBox1.Text Dim filedir = TextBox2.Text ProgressBar1.Value = 0 ProgressBar1.Maximum = 100 Try httpclient.DownloadFileAsync(New Uri(SourceURL), (filedir)) Catch ex As Exception MsgBox("Fehler! Der Angegebende DLD Link konnte nicht geöffnet werden! Eventuell hast du dich vertippt oder einen veralteten Link! Versuche es erneut. Fehler Code 404 (Support)" + ErrorToString(), MsgBoxStyle.Critical) End Try Button1.Enabled = False Button7.Enabled = True End Sub Private Sub httpclient_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles httpclient.DownloadFileCompleted MsgBox("Der Download ist nun komplett fertiggestellt! Viel Spaß noch mit Downloaded by FabiP!" + ErrorToString(), MsgBoxStyle.OkOnly) Button1.Enabled = True Button7.Enabled = False End Sub Private Sub httpclient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles httpclient.DownloadProgressChanged ProgressBar1.Value = e.ProgressPercentage Dim Totalbytes As Long = e.TotalBytesToReceive / 1024 Dim mTotalbytes As Long = Totalbytes / 1024 Dim bytes As Long = e.BytesReceived / 1024 Dim mbytes As Long = bytes / 1024 If Totalbytes < 1 Then Totalbytes = 1 If bytes < 1 Then bytes = 1 If Totalbytes > 1024 Then Totalbytes = 1 Label1.Text = bytes.ToString & " KB von " & Totalbytes.ToString & " KB" Label1.Text = mbytes.ToString & " MB von " & mTotalbytes.ToString & " MB" End Sub Private Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button6.Click Form2.Show() End Sub Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click Form3.Show() End Sub Private Sub Button5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button5.Click Form5.Show() End Sub Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click Form4.Show() End Sub Private Sub Timer1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) End Sub Private Sub Button7_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button7.Click httpclient = New WebClient Dim SourceURL = TextBox1.Text Dim filedir = TextBox2.Text ProgressBar1.Value = 0 ProgressBar1.Maximum = 100 Button1.Enabled = True End Sub End Class
Ich verwende NET.Framework 3.5
und Visual Basic 2008 Express Edition mit dem SP 1!
mfG
bb
Beitrag zuletzt geändert: 12.8.2009 19:27:30 von fabipht -
eben das ist ja mein problem! ich weis nicht wie man das macht!
könntest du mir den quelltext posten, so dass ich ihn nur noch einsetzen muss?
danke
bb
mfg
EDIT//::// Problem hat sich gelöst! Danke nochmals! Ich habe mich verlesen =)
bb mfg fabian
Beitrag zuletzt geändert: 13.8.2009 11:05:39 von fabipht -
Ich hab da was für dich:
als erstes machst du ne globale var (ganz oben eine zeile unter "class")
Dim OldFileSize As Integer = 0
dann fügst du diese funktion hinzu:
Private Function GetDownRate(TargetFile As String) As Interger Dim NewFileSize As Integer = My.Computer.FileSystem.GetFileInfo(TargetFile).Length Dim DownRate As Integer = NewFileSize - OldFileSize OldFileSize = NewFileSize Return DownRate End Function
hoffe ich konte dir helfen!
schreib mir wenn du probleme hast...
ich programmier seit über 3 jahren. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage