OldSchoolHack

Registrieren / Anmelden Deutsch

Visual Basic 2010 Anderer Updater?


icon Visual Basic 2010 Anderer Updater? #1

Anmeldungsdatum: Jun 2010

Beiträge: 561

Hallo liebes Oldschoolhack Forum,


Ich würde mein neues Programm, das in VB geschrieben ist,gerne mit einem Auto-Updater versehen.
Ich stell mir das so vor, Man startet das Programm, dann wird getestet ob ein neues Update verfügbar ist, davon soll der Nutzer erstmal nichts mitbekommen. Da meine Programm sehr klein ist würde ich das gerne so machen, wie gesagt wird dann eben geschaut, ob ein Update verfügbar ist, falls eins Verfügbar ist, soll dies ausgeführt werden. Dafür habe ich zwei Text-Dateien auf meinem FTP-Server:
- Version.txt(Um die Version zu checken)
- Update.txt(Um das Update zu übernehmen)
In der Update.txt befindet sich ein code, dieser soll bevor sich das Programm zu sehen ist ins Programm eingefügt werden. Der code wäre zum Bespiel MessageBox.Show("Das wäre cool!").
Ich schildere euch nochmal den genauen Ablauf, wie das gehen soll.

1. Programm wird gestartet
2. Programm checkt nach update durch die ProductVersion
3. Falls kein update vorhanden ist mit dem normalen Code des Programms fortfahren
4. Falls Update vorhanden ist, soll der Code, welcher in Update.txt vorhanden ist, in das Programm eingefügt werden
5. Programm ist fertig mit dem Laden und einfügen des Codes und öffnet sich mit voller Pracht

zum Beispiel eine Anwendung mit einem Button

Der code, der in Update.txt vorhanden ist, soll dort benutzt werden, so:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Hier hin soll dann der Code des Update.txt eingefügt werden, welcher dann beinhaltet was passieren soll, wenn der Button angeklickt wird.
Also:
MessageBox.show("Das wäre cool!")

End Sub

Ich hoffe ihr könnt mir weiter helfen, ich wusst nicht, wonach ich in google und diesem Forum suchen sollte, um einen Ansatz oder Ideen herzubekommen, die mir weiterhelfen.
Falls ihr nicht genau wisst oder nicht alles verstanden habt , fragt bitte, nach ich werde es euch dann nochmal schildern!
Danke im Vorraus!

Gruß Jens

icon #2

Anmeldungsdatum: Nov 2007

Beiträge: 2801

Aloha!

Eigentlich ist das was du dir vorgestellt hast ganz einfach.

So lädst du einfach eine Datei von deinem FTP Server herunter:
My.Computer.Network.DownloadFile(address ,destinationFileName)

Anschließend kannst du die Datei folgend auslesen:
Inhalt = My.Computer.Filesystem.ReadAllText("destinationFileName")

Die Versionsnummer deines Programmes bekommst du so raus:
lblVersion.Text = String.Format("V. {0}", My.Application.Info.Version.ToString)

Ist zwar nun kein C&P Code, aber das und ein wenig Grips sollte eigentlich deine Probleme lösen

__________________

[RELEASES]
[INSURGENCY] OSH Memory Hack Download
[NEXT RELEASES]
[MULTI - Source Engine Mods] OSH Memory Hack [Vorschläge Hier]

http://misscreativeclassy.files.wordpress.com/2009/06/dubai-souk-aldi-dubai.png
icon #3

Anmeldungsdatum: Jun 2010

Beiträge: 561

Mhh, danke für deine Antwort
Ich weiß aber nicht genau wie ich das jetzt in Button1 verwenden soll, dass dieser den Code ausführt.
Ein kleiner "Ansatz" ( Bitte nicht so streng, bin noch nicht lang am programmieren)

VB Code:
  1. Imports System.Net
  2.  
  3. Public Class Form1
  4. Public Function PROBLEM()
  5.  
  6. Dim Pfad As String
  7. SaveFileDialog1.ShowDialog()
  8. Pfad = SaveFileDialog1.FileName
  9.  
  10. My.Computer.Network.DownloadFile("Datei zum Downloaden Update.txt", Pfad)
  11. Dim Inhalt As String
  12. Inhalt = My.Computer.FileSystem.ReadAllText(Pfad)
  13.  
  14.  
  15.  
  16.  
  17. End Function
  18.  
  19. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  20.  
  21. PROBLEM()
  22.  
  23.  
  24.  
  25. End Sub


In der Update.txt Datei befindet sich als Beispiel der schlichte Code MessageBox.show("Ich Brauche Hilfe!")
und diesen will ich in Button1 ausführen!
Danke für jede weitere Antwort!
icon #4

Anmeldungsdatum: Nov 2007

Beiträge: 2801

Du kannst das doch wieder genauso auslesen...

Update = My.Computer.FileSystem.ReadAllText(PfadUpdate)
MessageBox.Show(Update)


Wenn du jetzt einen komplett neuen Code integrieren
willst, dass du bspw. auch ein neues Fenster einfügen
willst usw. wird die Sache zu kompliziert...

__________________

[RELEASES]
[INSURGENCY] OSH Memory Hack Download
[NEXT RELEASES]
[MULTI - Source Engine Mods] OSH Memory Hack [Vorschläge Hier]

http://misscreativeclassy.files.wordpress.com/2009/06/dubai-souk-aldi-dubai.png
icon #5

Anmeldungsdatum: Jun 2010

Beiträge: 561

mh, ja das hatte ich auch geschafft, naja dann bleibe ich bei meinem anderen standart update system, trotzdem vielen dank!
Edit: Ich habs dann doch geschafft und zwar mit Dem CodeDom
icon #6

Anmeldungsdatum: Aug 2011

Beiträge: 10

Imports System.Net

TEXT Code:
  1. 'Check for Updates
  2. Dim Lesen as String
  3. Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://DeinServer/version.txt")
  4. Dim response As System.Net.HttpWebResponse = request.GetResponse()
  5.  
  6. Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())
  7.  
  8. Dim newestversion As String = sr.ReadToEnd()
  9. Dim currentversion As String = Application.ProductVersion
  10. If newestversion.Contains(currentversion) Then 'Falls die version im server mit der Productversion übereinstimmt, dann soll der fortfahren
  11.  
  12.  
  13.  
  14. Else
  15. My.Computer.Network.DownloadFile("http://deinserver/update.txt", "C:\Update.txt")
  16. My.Computer.FileSystem.ReadAllText("C:\Update.txt")
  17. End If

Hoffe das hilft dir.