Update systeem maken

Status
Niet open voor verdere reacties.
etri:
Heel goeie opmerking, ik vond het al raar dat ik steeds fouten kreeg :D
bgwUpdates is idd een BackgroundWorker

snipeytje:
Hangt van je programma af he. Bij mij zit alle code in frmSettings, behalve die read functies, die zitten in modMain. Wel niet vergeten om je bgWorker cancelbaar te maken, heb ik steeds zitte :rolleyes:

Is er geen manier om bij een functie afhankelijk van de waarden die je meegeeft een ander type waarde terug te geven? Want hier moet ik bij de 2e readFile eerst die array joinen in een string om die later weer te splitten wat me wat omslachtig lijkt :confused:
 
Ik zou de volgende code gebruiken met de Split functie gebruiken:
Code:
     Dim contentsStr As String = My.Computer.FileSystem.ReadAllText(udPcPath & fileName)
     sVersion = Split(contentsStr, vbCrLf)
 
@bv2vs weet je ongeveer waar je de code zou moeten zetten voor tijdens het laden. kan dan alle code gewoon bij de laad sub
 
alle code gaat bij de laad sub, behalve die van de bgWorker natuurlijk :)
 
gewoon in je class van de form waar je die nodig hebt
 
Als je een bestand download zonder bgWorker, dan blijft je porgramma hangen tot het gedownload is. Als je het in een bgWorker zet, dan kan je dat proces laten lopen zonder dat de gebruiker er last van heefd.

wat is 'de rest' ?
 
Oja:confused: Was het helemaal vergeten:O:S

Hier de code :

1. Maak op je server een bestand aan: Update.rt
en als inhoud: nieuweversie | beschrijving | link naar setup
2. Maak een Class met de code:
Code:
    Public Function update(ByVal versie As String, ByVal msgon As String, ByVal server As String) As Boolean
        Try
            'Update systeem V3.0 ;; gemaakt door Kay's Software'
            '© copyright kay's software 2008
            Dim L As String = server
            Dim TL As String = My.Computer.FileSystem.SpecialDirectories.Temp & "\rt\"
            If IO.File.Exists(TL & "update.rt") Then
                IO.File.Delete(TL & "update.rt")
            End If
            My.Computer.Network.DownloadFile(server & "update.rt", TL & "update.rt")
            Dim R As String = My.Computer.FileSystem.ReadAllText(TL & "update.rt")
            Dim split() As String
            split = R.ToString.Split("|")
            If split(0) > versie Then
                Dim ant As DialogResult = MsgBox("Er is een update gevonden! Nadere beschrijving:" & vbNewLine & "===========================" & vbNewLine & split(1) & vbNewLine & "===========================" & vbNewLine & "Wilt u deze update instaleren?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Radio Totaal update Systeem")
                If ant = DialogResult.Yes Then
                    MsgBox("De updater wordt naar het bureaublad gekopieerd... Even geduld AUB", MsgBoxStyle.Information)
                    Try
                        If IO.File.Exists(My.Computer.FileSystem.SpecialDirectories.Desktop & "/rtupdate.exe") Then
                            IO.File.Delete(My.Computer.FileSystem.SpecialDirectories.Desktop & "/rtupdate.exe")
                        End If
                        My.Computer.Network.DownloadFile(split(2), My.Computer.FileSystem.SpecialDirectories.Desktop & "/rtupdate.exe")
                        If split(3) = "dll" Then
                            MsgBox("Radio Totaal hoeft NIET verwijdert te worden met deze update! Radio Totaal wordt afgesloten en de setup wordt opgestart!")
                            Try
                                MsgBox("Als de setup niet geopend wordt, moet u de setup handmatig opstarten vanaf het bureaublad!", MsgBoxStyle.Exclamation)
                                System.Diagnostics.Process.Start(My.Computer.FileSystem.SpecialDirectories.Desktop & "/rtupdate.exe")
                                Application.Exit()
                            Catch ex As Exception
                                MsgBox("Kan setup niet vinden, start hem handmatig op!" & vbNewLine & "Niet vinden? Downloadn hem dan handmatig opnieuw:" & vbNewLine & split(2) & vbNewLine & ex.Message(), MsgBoxStyle.Information)
                            End Try
                        Else
                            MsgBox("De gevonden update is geen geldige update! U kunt radio totaal weer gebruiken!", MsgBoxStyle.Information)
                            IO.File.Delete(My.Computer.FileSystem.SpecialDirectories.Desktop & "/rtupdate.exe")
                        End If
                        If split(3) = "exe" Then
                            MsgBox("De updater is gekopieerd naar het bureaublad, voor u die opstart moet u de oude Radio Totaal verwijderen via het configuratie scherm! (belangrijk)" & vbNewLine & "Klik op Ok om Radio Totaal te beindigen..", MsgBoxStyle.Information)
                        Else
                            MsgBox("De gevonden update is geen geldige update! U kunt radio totaal weer gebruiken!", MsgBoxStyle.Information)
                            IO.File.Delete(My.Computer.FileSystem.SpecialDirectories.Desktop & "/rtupdate.exe")
                        End If
                    Catch ex As Exception
                        MsgBox("Kan updater niet van server downloaden, gelieve deze fout te melden via: radio-totaal@funenzo.nl of via de contact pagina op http://www.kaysoftware.nl" & vbNewLine & ex.Message(), MsgBoxStyle.Critical)
                    End Try
                Else
                    End
                End If
            Else
                If msgon = "0" Then
                Else
                    MsgBox("Alle RT bronbestanden en systemen zijn up-to-date, er is dus geen update beschikbaar.", MsgBoxStyle.Information)
                End If
            End If
            IO.File.Delete(TL & "update.rt")
        Catch ex As Exception
            MsgBox("Fout bij het Updaten:    (UpdC)" & vbNewLine & ex.ToString, MsgBoxStyle.Critical)
        End Try
    End Function
Om hem bij het opstarten te controleren moet je deze code gebruiken:
Code:
Dim upd as new classname
upd.update("Huidige versie van software", "0", "http://www.hierjesite.ex/map/") GEEN    BESTANDNAAM ACHTER WEBSITE!

die "0" moet je in 1 veranderen als je wel het bericht 'er is geen pdate beschikbaar" wilt weeergeven.

Dit was het wel:o
Ik hoop dat het werrkt??

Sorry voor het een jaar te laat antwoorden:o
 
Laatst bewerkt:
ik neem aan dat ik server in mijn serveradres moet veranderen
en radio totaal naar mn eigen progje
class name begrijp hij trouwens niet
 
Laatst bewerkt:
Ik krijg een fout bij het gebruiken van je code kayhup, als ik OK druk voor het downloaden zegt ie naar een tijdje

Kan updater van de server niet downloaden.
De index ligt buiten de matrixgrenzen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan