PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VB.net einfacher downloader Fragen



Shelter
23.12.2010, 10:02
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckBox1.Checked Then
My.Computer.Network.DownloadFile(TextBox1.Text, SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocume nts)
Else
MsgBox("Check")

End If

End Sub


SaveFileDialog.InitialDirectory
bei dem zeigts an, " Der verweiß auf einen nicht freigegeben member erfordert ein Objektverweiß"
Kann mir wer erklären wie ich das wegbekomme?mBzw. was daran Falsch ist? Google spuckt nix direktes aus :(

LG

K-Gee
23.12.2010, 10:03
Probiers mal mit dem WebClient

Shelter
23.12.2010, 10:08
Kenn mich nd direkt aus wie du das meinst :( , fang ja gerade an Vb.net zu lernen. Buch werd ich mir bald bestellen ;)
Kannste mir ein beispiel machen?

K-Gee
23.12.2010, 10:13
Buch für VB.Net bestellen? willste mich verarschen xD, das lernen für die Kack sprache lohnt sich nicht


Imports System.Net
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim wc As WebClient
wc.DownloadFile("http://host.com/file.exe", "C:\dloaded.exe")
End Sub
End Class

So müsste es klappen, dloaded.exe kannste ja selber mit dem FileDialog machen

VooDoo666
23.12.2010, 10:16
wc.DownloadFile("http://host.com/file.exe", "C:\dloaded.exe")

Unter C:\ zu speichern ist nicht soo geil, probiers mal mit %tmp%.

Und die Datei danach executen nicht vergessen.

K-Gee
23.12.2010, 10:19
Im Sample Post #1 siehts aus als sei es kein Scene Downloader sondern ein normaler Downloader für Legale zwecke.

Temp verzeichnis

C:\Users\USRNAME\AppData\Local\Temp

Bei Win7, jedoch auf WinXP anders
Probiers mit SpecialFolders operator

Executen kannst du per Shell

Shelter
23.12.2010, 10:23
Ne will dich nicht verarschen^^

Öhm... ja währe nett wenn ihr mir das erklärt^^ , checks garnimma :(



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckBox1.Checked Then
Dim wc As WebClient
wc.DownloadFile("http://host.com/file.exe", "C:\dloaded.exe")
Else
MsgBox("Check")

End If

End SubWie lass ich da jetzt die textbox1 einlesen für den link?
Und wie kann ich da das mit savefiledialoge machen?

K-Gee
23.12.2010, 10:34
Also bei mir klappt das hier wunderbar


Imports System.Net
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SaveFileDialog1.ShowDialog()
Dim wc As New WebClient
wc.DownloadFile(textbox1.text, savefiledialog1.filename)
End Sub
End Class

habe grade als test aus deinem FTP deine sig runtergeladen, klappt auch mit dem Dialog, den rest machste nun selber

Shelter
23.12.2010, 10:42
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckBox1.Checked Then
SaveFileDialog1.ShowDialog()
Dim wc As WebClient
wc.DownloadFile(TextBox1.Text, SaveFileDialog1.filename)
Else
MsgBox("Check")

End If


Fehler 1 "SaveFileDialog1" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. C:\Users\DS\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplicati on1\Form1.vb 13 13 WindowsApplication1



Fehler 2 "SaveFileDialog1" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. C:\Users\DS\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplicati on1\Form1.vb 15 44 WindowsApplication1


Ich wüsst nicht wie ich das lösen kann :(

K-Gee
23.12.2010, 10:46
Ja tu einen SaveFileDialog hinzufügen... ist links bei den Buttons, lern bitte die Basics und den umgang mit der IDE

Shelter
23.12.2010, 11:00
Warnung 1 Die wc-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Zur Laufzeit kann eine Nullverweisausnahme auftreten. C:\Users\DS\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplicati on1\Form1.vb 15 13 WindowsApplication1

Und beim savedialoge muss ich den namen + dateiendung selbst eingeben.
Und die datei ist aber unauffinbar wenn ich speichern drücke.

K-Gee
23.12.2010, 11:16
Guck im eigenschaften fenster beim Filter des SaveFileDailoges
hast du denn System.net inkludiert und wc als Variable deklariert??

Hier ein Projekt, weil du es nicht verstehst, kannste C&P XD

localhostr.com - share … anything (http://localhostr.com/file/NU3B6Gm/WindowsApplication1.rar)

Shelter
23.12.2010, 11:23
hab mir das angesehen, und sethet eigentlich das selbe wie bei mir


Imports System.Net

Public Class Form1

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
MsgBox("LoL")
End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckBox1.Checked Then
SaveFileDialog1.ShowDialog()
Dim wc As WebClient
wc.DownloadFile(TextBox1.Text, SaveFileDialog1.filename)
Else
MsgBox("Check")

End If

End Sub
End Class


Und ich wills eben versetehn was da falsch is, wenn ichs weiß, dann weiß ichs nächtes mal auch^^

Apfel
23.12.2010, 13:19
Hier hab ich mal schnell was zamgeschrieben:


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckBox1.Checked Then
Dim save As New SaveFileDialog
Dim wc As New System.Net.WebClient
With save
.Title = "Wo soll die Datei gespeichert werden?"
.Filter = "Bild (*.jpg)|*.jpg|Anwendung (*.exe)|*.exe|Textdokument (*.txt)|*.txt| Alle Dateien (*.*)|*.*"
.FileName = "dloaded"
.AddExtension = True
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocume nts
If save.ShowDialog = Windows.Forms.DialogResult.OK Then
wc.DownloadFile(TextBox1.Text, .FileName)
End If
End With
Else
MsgBox("Bitte die Checkbox anklicken")
End If
End Sub

Wenn du die beiden Snippets vergleichst wirst du ja feststellen warum bei dir der SaveFileDialog so nicht funktioniert.

LG Apfel

Shelter
23.12.2010, 17:39
So das funktioniert danke :)

hab aber noch was anderes ... weil ich ein anderes projekt als test machen möchte, nur ich mich mit dem deklaieren nicht auskenne :(


Public Class Form1
Dim ProgressBar1
Friend WithEvents MyWebClient As New Net.WebClient

Private Sub MyWebClient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles MyWebClient.DownloadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MyWebClient.DownloadFileAsync(New Uri("http://shelter.kilu.de/lol/lol.exe"), "C:\lol.exe")
End Sub
End Class

Also
Dim Progressbar [.wie gehts da weiter`?.]

Atropos
23.12.2010, 18:04
Auch wenn es anscheinend funktioniert muss ich dir noch was sagen. Du hast keine Ahnung was ein Member ist und somit auch keine Ahnung von OOP. Das ist keine Schande doch das zeichnet *.Net nun mal aus. Nimm ein Buch oder ein Openbook (von Galileo) und lern mal die Grundlagen. Kannst ja kein Member (zB vom SaveFileDialog) aufrufen ohne dessen Klasse zu initialisieren.
Also lies das doch kluger Weise ;).
Galileo Computing: Einstieg in VB.NET (http://openbook.galileocomputing.de/vb_net/)

Shelter
23.12.2010, 21:04
Danke für die antwort, hab mir das mit members mal durchgelesen, und auch noch weiter vorne gekuckt, nur versteh ich es nicht. Ich weiß zwar dass man es so defenieren kann, aber nicht, was ich dann machen muss^^
Und ja mhm.. ich tu mir schwer, wenn ich den code nicht weiß, wie das gehört. ich kann es nur so lernen^^ , denn dann weiß ich, was für eine funktion was bewirkt.

Wenn ich an meine SA-MP zeiten denke, wo eine c ähnliche sprache war, hab ichs nur durch souce codes gelernt.