VBA bij error -> begin + count +1

Status
Niet open voor verdere reacties.

luck7

Gebruiker
Lid geworden
10 feb 2009
Berichten
791
Hallo

Ik heb een updater aan mn programma toegevoegd.

Als deze gaat updaten komt het zo nu en dan voor dat ie geen reactie van de server krijgt (te traag, server down...)

Daarom wil ik een errorhandler toevoegen die de code van begin af aan opnieuw laat lopen zodat het herhaald kan worden. Er moet dan ook een getal (+1) bij een count worden toegevoegd zodat er na 3x proberen een melding komt dat het updaten mislukt is.

Kan iemand me hierbij helpen.

Ik kan natuurlijk wel de code 3x kopiëren en in 3 verschillende errorhandlers zetten maar dat is erg onhandig en bovendien moet ik dan alle DIMs andere namen geven.

BVD
Luck

ps: interessant is trouwens ook dat er achter het txt bestandje waar de versie in staat nog een keer .txt staat.
 
Laatst bewerkt:
en bovendien moet ik dan alle DIMs andere namen geven.
Als je de variabelen in een instructie Public zet, kun je ze in elke module declareren.
 
Ok. Dan ga ik dat proberen.
Wordt wel een lange code dan, maargoed.
 
ok. heb nu de volgende code maar als er bij de 2de keer iets mis gaat komt er alsnog een crach terwijl ik er wel een 2de errorhandler in heb staan.

Public Sub MainScreen_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.CheckForIllegalCrossThreadCalls = False

Dim Thread As Thread
Thread = New System.Threading.Thread(AddressOf ThreadCodeUpdate)
Thread.Start()

End Sub

Sub ThreadCodeUpdate()

On Error GoTo AutoUpdateErrorHandler

If System.IO.File.Exists("C:\NewestVersion.zip") = True Then
Kill("C:\Newestversion.zip")
Else
End If

If My.Computer.FileSystem.DirectoryExists("C:\NewestVersion.zipUnzipped") Then
Dim oFSO As Object
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFolder("C:\NewestVersion.zipUnzipped", True)
Else
End If



'---------------------------------------------------------------------------------------------------


Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://h1.ripway.com/CyberTech/Lost-Worlds/CurrentVersion.txt")
Dim response As System.Net.HttpWebResponse = request.GetResponse()



Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())

Dim NewestVersion As String = sr.ReadToEnd()
Dim CurrentVersion As String = Application.ProductVersion

'----------------------------------------------------------------------------------------------------------------------


If NewestVersion.Contains(CurrentVersion) Then

MsgBox("No update avaliable!")

Else



Dim Answer As String
Dim MyNote As String

'Place your text here
MyNote = "New version avaliable." & vbLf & "Update?"

'Display MessageBox
Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "???")

If Answer = vbNo Then
'Code for No button Press


Else
'Code for Yes button Press


If System.IO.File.Exists("C:\NewestVersion.zip") = True Then
Kill("C:\Newestversion.zip")
Else
End If




If My.Computer.FileSystem.DirectoryExists("C:\NewestVersion.zipUnzipped") Then

Dim oFSO As Object
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFolder("C:\NewestVersion.zipUnzipped", True)
Else
End If


'----------------------------------------------------------------------------------------------------------------------

My.Computer.Network.DownloadFile("http://h1.ripway.com/CyberTech/Lost-Worlds/Newestversion.zip", "C:\NewestVersion.zip")


'----------------------------------------------------------------------------------------------------------------------

Dim file As String = "C:\NewestVersion.zip"
' ACHTUNG ofd.filename hängt Dateityp hinten dran! also NAME.zipUnzipped
Dim cu As New ClassUnzip(file, Path.Combine(Path.GetDirectoryName(file), file & "Unzipped"))
AddHandler cu.UnzipFinishd, AddressOf Unziped
cu.UnzipNow()

End If
End If
Exit Sub

AutoUpdateErrorHandler:


On Error GoTo AutoUpdateErrorHandler2

If System.IO.File.Exists("C:\NewestVersion.zip") = True Then
Kill("C:\Newestversion.zip")
Else
End If

If My.Computer.FileSystem.DirectoryExists("C:\NewestVersion.zipUnzipped") Then
Dim oFSO As Object
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFolder("C:\NewestVersion.zipUnzipped", True)
Else
End If



'---------------------------------------------------------------------------------------------------


Dim request2 As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://h1.ripway.com/CyberTech/Lost-Worlds/CurrentVersion.txt")
Dim response2 As System.Net.HttpWebResponse = request.GetResponse() <- erro onstaat hier



Dim sr2 As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())

Dim NewestVersion2 As String = sr.ReadToEnd()
Dim CurrentVersion2 As String = Application.ProductVersion

'----------------------------------------------------------------------------------------------------------------------


If NewestVersion.Contains(CurrentVersion) Then

MsgBox("No update avaliable!")

Else



Dim Answer As String
Dim MyNote As String

'Place your text here
MyNote = "New version avaliable." & vbLf & "Update?"

'Display MessageBox
Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "???")

If Answer = vbNo Then
'Code for No button Press


Else
'Code for Yes button Press


If System.IO.File.Exists("C:\NewestVersion.zip") = True Then
Kill("C:\Newestversion.zip")
Else
End If




If My.Computer.FileSystem.DirectoryExists("C:\NewestVersion.zipUnzipped") Then

Dim oFSO As Object
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFolder("C:\NewestVersion.zipUnzipped", True)
Else
End If


'----------------------------------------------------------------------------------------------------------------------

My.Computer.Network.DownloadFile("http://h1.ripway.com/CyberTech/Lost-Worlds/Newestversion.zip", "C:\NewestVersion.zip")


'----------------------------------------------------------------------------------------------------------------------

Dim file As String = "C:\NewestVersion.zip"
' ACHTUNG ofd.filename hängt Dateityp hinten dran! also NAME.zipUnzipped
Dim cu As New ClassUnzip(file, Path.Combine(Path.GetDirectoryName(file), file & "Unzipped"))
AddHandler cu.UnzipFinishd, AddressOf Unziped
cu.UnzipNow()

End If
End If
Exit Sub

AutoUpdateErrorHandler2:

End Sub
 
Dit lijkt meer op VB.NEt dan visual basic voor applications :P zit je wel op het juiste board voor deze vraag..?
 
Om maar even de handtekening van Mark xl in praktijk te brengen:
Wanneer je code plaatst zet er dan de CODE tag omheen, zo blijven ook de inspringpunten bewaard en is het stukken beter leesbaar.
Voorwaarde is uiteraard wel dat je in je eigen code die inspringpunten gebruikt en dat lijkt me wel zo verstandig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan