Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
24.07.10, 12:55
|
#1
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
Datei von ftp server herunterladen & ausführen
Hallo Leute
Habe eine Frage.
Wie kan ich per Button eine Datei (z.B name test.exe) downloaden und dan automatisch
ausführen?
Bitte um Antwort.
MfG moin2010
|
|
|
24.07.10, 14:11
|
#2
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
schaust du hier:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
damit kannst du das in eine .bat stecken.
__________________
entropie erfordert keine wartung
|
|
|
24.07.10, 14:25
|
#3
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
nein sorry hab mich ausversehen nicht richtig ausgedrückt.
Ich möchte via Visual Basic 2008 über einen Button eine datei
herunterlade und ausführen.
|
|
|
24.07.10, 20:56
|
#4
|
Anfänger
Registriert seit: Jun 2010
Beiträge: 28
Bedankt: 1
|
über die classe kommt erst mal:
'Imports System.Net'
dann dierekt unter Public Class Form1:
Public i As Integer
Public WithEvents download As New WebClient
dann für den button zum download:
download = New WebClient
download.DownloadFileAsync(New Uri("http://ftp.de/test.exe"), "dateipfad", "dateiname.exe")
zum öffnen:
shell ("dateipfad" + "/" + "dateiname.exe")
|
|
|
25.07.10, 09:34
|
#5
|
Registriert seit: Dec 2009
Beiträge: 792
Bedankt: 49
|
Zitat:
Zitat von junior_no1
shell ("dateipfad" + "/" + "dateiname.exe")
|
Wohl eher ein "\" und bei Strings rechnet man eigentlich auch nicht und benutzt somit lieber ein "&" was man aber eig. auch nicht braucht da man gleich den Pfad + Dateinamen angeben kann, also: "Dateipfad\datei.exe"
__________________
To succeed you have to stop being ordinary and be legen - wait for it - dary.
|
|
|
25.07.10, 13:39
|
#6
|
Anfänger
Registriert seit: Jun 2010
Beiträge: 28
Bedankt: 1
|
ja tut mir leid wegen dem fehler
aber wenn ich es gezeigt hätte wie du hätte man es auch falsch verstehn können
und ob + oder & das ist da egal
|
|
|
25.07.10, 16:12
|
#7
|
Registriert seit: Dec 2009
Beiträge: 792
Bedankt: 49
|
Ja, beide funktionieren zwar, jedoch rechnet man trotzdem nicht mit Strings..aber ist ja jetz auch egal^^
__________________
To succeed you have to stop being ordinary and be legen - wait for it - dary.
|
|
|
30.07.10, 11:04
|
#8
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
weil es bei mir nicht so gut geklappt hat habe ich mir ein tut angesehen.
Und jetzt kommt der updater am pogramm start.
Es hat auch alles geklapp ausser das mit dem Form1-Load Ereignis.
Dort tacuht dan ein fehler auf.
Das ist der Code für das Form1-Load Ereignis:
Zitat:
My.Computer.Network.DownloadFile("http://programmierung.kilu.de/Anwendungen/wm-spiel-notierer/version", Environment.GetFolderPath(Environment.SpecialFolde r.ApplicationData) & "/version.ini", "", "", False, 60000, True)
Dim MeineVersion As Integer = CInt(Me.Label35.Text)
Dim ServerVersion As Integer = My.Computer.FileSystem.ReadAllText(Environment.Get FolderPath(Environment.SpecialFolder.ApplicationDa ta) & "/version.ini")
If ServerVersion > MeineVersion Then
My.Computer.FileSystem.WriteAllBytes(Environment.G etFolderPath(Environment.SpecialFolder.Application Data) & "\Update.exe", My.Resources.Updater, False)
MsgBox("Das Programm wird nun auf den aktuelsten stand gebracht!", MsgBoxStyle.Information, "Aktuell")
Shell(Environment.GetFolderPath(Environment.Specia lFolder.ApplicationData) & "\Update.exe")
End
End If
|
Jetzt kommt aber wen ich mein Programm starte kommt ein fenster mit diesem Fehler:
Zitat:
Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
************** Ausnahmetext **************
System.IO.FileNotFoundException: Die Datei wurde nicht gefunden.
bei Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout)
bei Updater.Form1.httpclient_DownloadFileCompleted(Obj ect sender, AsyncCompletedEventArgs e)
bei System.Net.WebClient.OnDownloadFileCompleted(Async CompletedEventArgs e)
bei System.Net.WebClient.DownloadFileOperationComplete d(Object arg)
************** Geladene Assemblys **************
mscorlib
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
Updater
Assembly-Version: 1.0.0.0.
Win32-Version: 1.0.0.0.
CodeBase: file:///C:/Users/Kai/AppData/Roaming/update.exe.
----------------------------------------
Microsoft.VisualBasic
Assembly-Version: 8.0.0.0.
Win32-Version: 8.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
----------------------------------------
System
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Windows.Forms
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Runtime.Remoting
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
----------------------------------------
System.Configuration
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Xml
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
Microsoft.VisualBasic.resources
Assembly-Version: 8.0.0.0.
Win32-Version: 8.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic.resources/8.0.0.0_de_b03f5f7f11d50a3a/Microsoft.VisualBasic.resources.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.4927 (NetFXspW7.050727-4900).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.
Zum Beispiel:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
|
Ich hoffe ihr könnt mir helfen.
|
|
|
30.07.10, 16:00
|
#9
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
Code:
Shell(Environment.GetFolderPath(Environment.Specia lFolder.ApplicationData) & "\Update.exe")
ich könnte M$ immer noch dafür schlagen, daß sie den backslash als verzeichnistrenner eingeführt haben...
Code:
& "\\Update.exe"
oder
& @"\Update.exe"
version.ini wird wohl auch nicht korrekt gespeichert...
__________________
entropie erfordert keine wartung
|
|
|
30.07.10, 16:19
|
#10
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
ne hat immer noch nicht geklappt
du kannst dir das tut mal anschauen: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
davon habe ich das
|
|
|
30.07.10, 16:31
|
#11
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
Zitat:
System.IO.FileNotFoundException: Die Datei wurde nicht gefunden.
bei Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout)
|
der fehler besagt ja, daß die datei PathName nicht gefunden wurde.
schau doch mal, ob nach My.Computer.FileSystem.WriteAllBytes()
die Update.exe tatsächlich auf der festplatte liegt.
ich hab' mir das video mal angeschaut, ist ganz gut erklärt.
aber warum er den updater in 2 anwendungen aufsplittet und dann noch die update.exe in die ressourcen der anderen anwendung aufnimmt und dann nach Environment.SpecialFolder.ApplicationData kopiert ist mir nicht ganz klar. das verwirrt m.e. eher.
__________________
entropie erfordert keine wartung
|
|
|
30.07.10, 18:04
|
#12
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
also die datei liegt auf der festplatte.
das problem ist ja das er die gespeicherte datei nicht ausführt.
Das Downloaden macht er ja.
Kan man vieleicht das ändern das er zum beispiel die datei
dahin speichert wo er selbst ist und dan auch startet?
Das würde doch teorätisch gehen.
|
|
|
30.07.10, 18:14
|
#13
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
wenn du dich an das video gehalten hast,
funzt denn das update programm als solches ?
wenn ja, dann erweitere das update programm doch einfach um den versionscheck, und verzichte auf ein zweites programm.
__________________
entropie erfordert keine wartung
|
|
|
30.07.10, 21:08
|
#14
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
ich hab mich ja genau an das video gehalten.
ich muss mal darüber nachdenken ob ich das 2. programm weg lass.
|
|
|
03.08.10, 18:15
|
#15
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
ok das zwiete programm lasse ich jetzt weg.
und wie muss ich jetzt diesen text so umschreiben
das wen eine neue version verfügbar ist das er ein kleines fenster öffnet mit einem text.
Und das soll dan über ein button sein:
Zitat:
My.Computer.Network.DownloadFile("http://meine-domain/Anwendungen/mein-programm/version", Environment.GetFolderPath(Environment.SpecialFolde r.ApplicationData) & "\version.ini", "", "", False, 60000, True)
Dim MeineVersion As Integer = CInt(Me.Label35.Text)
Dim ServerVersion As Integer = My.Computer.FileSystem.ReadAllText(Environment.Get FolderPath(Environment.SpecialFolder.ApplicationDa ta) & "\version.ini")
If ServerVersion > MeineVersion Then
My.Computer.FileSystem.WriteAllBytes(Environment.G etFolderPath(Environment.SpecialFolder.Application Data) & "\update.exe", My.Resources.Updater, False)
MsgBox("Es sind neue Programm Updates verfügbar. Bitte besuchen sie unsere Hompage: http://meine-domain!", MsgBoxStyle.Information, "Aktuell")
End
End If
|
|
|
|
03.08.10, 18:42
|
#16
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
Code:
If ServerVersion > MeineVersion Then
* der code aus dem ersten programm um per ftp die datei zu ziehen
* bzw:
download = New WebClient
download.DownloadFileAsync(New Uri("http://ftp.de/test.exe"), "dateipfad", "dateiname.exe")
end if
__________________
entropie erfordert keine wartung
|
|
|
03.08.10, 19:07
|
#17
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
ich verstehe jetzt nicht ganz wie ich den einfügen muss
|
|
|
03.08.10, 19:09
|
#18
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
also das ist der code vom anderen prog:
Das ist das Form-Load Ereignis:
Zitat:
Me.Hide()
ShowDialog:
SaveFileDialog1.ShowDialog()
If SaveFileDialog1.FileName = Nothing Then
GoTo ShowDialog
End If
Pfad = SaveFileDialog1.FileName
Try
Me.Show()
httpclient = New WebClient
Dim URL As String = "http://meine-domain/ordner/ordner/programm.exe"
Application.DoEvents()
httpclient.DownloadFileAsync(New Uri(URL), Pfad)
Application.DoEvents()
Catch ex As Exception
MsgBox("Es ist folgender Fehler aufgetreten:" & vbNewLine & ex.ToString, MsgBoxStyle.Critical, "Es ist ein Fehler aufgetreten!")
End
End Try
|
Und das ist der code vom httpclient-downloadfilecompledet:
Zitat:
MsgBox("Die aktuelle Version wurde im angegebenen Verzeichnis gespeichert!", MsgBoxStyle.Information, "Erfolg")
Shell(Pfad)
|
|
|
|
03.08.10, 19:26
|
#19
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
du hast alle bausteine um das programm zu bauen. ich wüsste nicht, wie ich dir noch weiter helfen könnte, ausser es selbst nachzuprogrammieren und dann hier den code zu posten. aber dann hast du keinen wirklichen lerneffekt.
__________________
entropie erfordert keine wartung
|
|
|
03.08.10, 20:04
|
#20
|
Erfahrener Newbie
Registriert seit: Jul 2010
Beiträge: 120
Bedankt: 1
|
aber welchen code muss ich in den code einfügen den du gepostet hast einfügen?
Also den hier:
Zitat:
If ServerVersion > MeineVersion Then
* der code aus dem ersten programm um per ftp die datei zu ziehen
* bzw:
download = New WebClient
download.DownloadFileAsync(New Uri("http://ftp.de/test.exe"), "dateipfad", "dateiname.exe")
end if
|
und erscheint dan überhaupt ein fenster?
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:39 Uhr.
().
|