Update-Funktion Für Visual Basic Project
lima-city → Forum → Programmiersprachen → Basic
anpassen
auslese
code
datei
dokument
folgendem schema
folgenden format
hilfe
http
individuelle aktion
internet
kurze anmerkung
major
neusten stand
programm
projekt
server
string
update
url
-
Hy
ich möchte gerne mal ein vb6 projekt mit updatefunktion machen. dieses projekt soll sich dann automatisch auf den neusten stand über das internet updaten!
thx für hilfe -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
figosoft schrieb:
Hy
ich möchte gerne mal ein vb6 projekt mit updatefunktion machen. dieses projekt soll sich dann automatisch auf den neusten stand über das internet updaten!
thx für hilfe
Dann viel Erfolg, wenn du uns das nur mitteilen wolltest und keine Frage stellst. -
Am einfachsten ist es, Funktionen in DLL-Dateien auszulagern und diese bei Bedarf upzudaten.
-
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Const SW_HIDE = 0 Private Const SW_MAXIMIZE = 3 Private Const SW_MINIMIZE = 6 Private Const SW_NORMAL = 1 Private Const SW_SHOW = 5 Private Const SW_RESTORE = 9 Private Const SW_SHOWMAXIMIZED = 3 Private Const SW_SHOWMINIMIZED = 2 Private Const SW_SHOWMINNOACTIVE = 7 Private Const SW_SHOWNA = 8 Private Const SW_SHOWNOACTIVATE = 4 Private Const SW_SHOWNORMAL = 1 Private Const ERROR_BAD_FORMAT = 11& Private Const SE_ERR_ACCESSDENIED = 5 Private Const SE_ERR_ASSOCINCOMPLETE = 27 Private Const SE_ERR_DDEBUSY = 30 Private Const SE_ERR_DDEFAIL = 29 Private Const SE_ERR_DDETIMEOUT = 28 Private Const SE_ERR_DLLNOTFOUND = 32 Private Const SE_ERR_FNF = 2 Private Const SE_ERR_NOASSOC = 31 Private Const SE_ERR_OOM = 8 Private Const SE_ERR_PNF = 3 Private Const SE_ERR_SHARE = 26 Private Function update() As Boolean On Error Resume Next Dim AppVersion, NewVersion As String Dim isOnline As Boolean AppVersion = App.Major & "." & App.Minor & "." & App.Revision If x.Ping("www.google.de") <> -1 Then isOnline = True Else: isOnline = False If isOnline = False Then MsgBox "Du bist nicht mit dem Internet verbunden!", vbCritical, "Fehler" Exit Function Else NewVersion = Inet1.OpenURL("http://meineseite.de/version.txt") ' URL anpassen Do DoEvents Loop While Inet1.StillExecuting If CInt(NewVersion) > CInt(AppVersion) Then If MsgBox("Eine neue Version ist verfuegbar!" & vbNewLine & "Willst du diese jetzt herunterladen?", vbInformation + vbYesNo, "Info") = vbYes Then ShellExecute Me.hwnd, "open", "http://meineseite.de/Update.rar", 0, "C:", vbHide ' URL anpassen End If Else MsgBox "Deine Version ist aktuell!", vbInformation, "Updateinfo" update = False End If Exit Function End If End Function Private Sub Form_Load() update End Sub
version.txt im folgenden Format:
X.X.X
-
Kurze Anmerkung dazu:
Dim AppVersion, NewVersion As String
muss
Dim AppVersion as String, NewVersion As String
AppVersion bleibt sonst ein Variant.
If CInt(NewVersion) > CInt(AppVersion) Then
Wenn du die Version im Format "X.Y.Z" speicherst, wird sie hier vermutlich einfach nur auf X abgerundet und ein Versionssprung von 1.0 auf 1.1 würde daher nicht richig erkannt werden. Ich würde stattdessen einfach 2 Single vergleichen.
Ansonsten is der Code prima !
Liebe Grüße
- VampireSilence -
ich glaub aber einfacher ist es, wenn du es so machst:
Und zwar kannst du ganz einfach ein XML-Dokument, das sich auf einem Server befindet, auslesen.
Dies sieht dann im Code folgerndermaßen aus:
Dim site as New Xml.XmlDocument site.Load("http://url.de/update.xml") Dim reader as Xml.XmlNodeReader = New Xml.XmlNodeReader(site) While reader.Read If reader.GetAttribute("version") = "aktuelleversion" Then Dim update as String = reader.GetAttribute("update") If update = "true" Then Messagebox.Show("Eine neue Version ist verfügbar") 'und individuelle Aktion, die bei einem Update ausgeführt werden soll End if End if End While
Das XML-Dokument sieht dann nach folgendem Schema aus:
<update> <programm version="aktuelleversion" sperre="false" /> </update>
Wenn nun eine neue Version des Programms verfügbar ist, änderst du das "false" in "true" im XML-Dok.
Des Weiteren musst du noch die Stelle "aktuelleversion" sowohl im Code des Programms als auch in der XML-Datei anpassen, sodass das Ganze bei erneutem Update auch noch funktioniert :P
Ich hoffe, dass dir das so weiterhilft. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage