kostenloser Webspace werbefrei: lima-city


Update-Funktion Für Visual Basic Project

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    figosoft

    figosoft hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    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.
  4. t*****b

    Am einfachsten ist es, Funktionen in DLL-Dateien auszulagern und diese bei Bedarf upzudaten.
  5. 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

  6. vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    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
  7. 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.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!