vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Workshop Internet-Update - 100% Prozessorlast!? 
Autor: LE-Tarantino
Datum: 30.08.06 23:11

Hallo zusammen,

habe eine Internet-Update Funktion in mein Programm intehriert. Hab alles genau so gemacht wie im Workshop. Die Versionsprüfung wird tadellos durchgeführt und die Datei auch heruntergeladen.

Nur während des Downloadprozesses hab ich 100% Prozessorlast. Der Fortschrittsbalken (picProgress) und die geladenen Bytes (lblStatus) bleiben bei 3% stehen.. dann passiert nix (download läuft aber im Hintergrund weiter).. Fortschritt geht sprunghaft auf 31% und bleibt dann bis zum Ende stehen. Die Datei wird auch nicht bis zum Ende heruntergeladen. Es fehlen etwa 26kb .. trotzdem wird das finished() ereignis ausgelöst....

woran könnte es liegen?

hier der relevante code des forms... der code der active-x .dll entspricht zu 100% dem original aus dem Workshop

Private Sub VersionDownload_Finished()
  ' aktuelle Version auslesen
  sNewVersion = TextRead(App.Path & "\" & sCurrentVersion)
 
  ' downgeloadete Versionsdatei löschen
  Kill App.Path & "\" & sCurrentVersion
 
  ' aktuelle Version im Label anzeigen
  lblCurrent.Caption = "Version auf Server: " & sNewVersion
 
  ' Objekt löschen
  Set VersionDownload = Nothing
 
  ' Wenn Version keine Zahl, dann ist was faul
  If Not IsNumeric(sNewVersion) Then
    MsgBox "Ungültige Datei auf Server!", vbCritical
  Else
    ' Ansonsten überprüfen, ob die neue Version als Zahl größer ist, als die 
    ' Alte...
    If IsNewVersion(sNewVersion, lblLocal.Tag) Then
      ' Sie ist es, und nun fragen wir den User, ob er updaten will
      If MsgBox("Neue Version verfügbar!" & vbCrLf & "Downloaden?", vbYesNo) = _
        vbYes Then
        ' Ja, also Objekt instanzieren und downloaden
        Set FileDownload = New clsDownload
        If FileDownload.DoDownload(sDomain & App.EXEName & ".exe", App.Path & _
          "\" & App.EXEName & ".e32") = True Then
            EnableContainer FRM_SETUP, FrameDl, False
            cmdAbortDl.Enabled = True
            cmdAbort.Enabled = False
            cmdOK.Enabled = False
            cmdApply.Enabled = False
        Else
            Set FileDownload = Nothing
            Screen.MousePointer = vbDefault
        End If
      End If
    Else
      ' kein Update vorhanden...
      MsgBox "Keine neue Programmversion verfügbar"
    End If
  End If
 
  ' Maus zurücksetzen
  Screen.MousePointer = vbDefault
End Sub
' Download-Fortschritt
Private Sub FileDownload_Progress(ByVal BytesLoaded As Long, ByVal FileSize As _
  Long)
  lblStatus.Caption = CStr(BytesLoaded) & " von " & _
    CStr(FileSize) & " Bytes"
  ShowProgress picProgress, BytesLoaded, 0, FileSize
End Sub
' Fortschritsanzeige
Private Sub ShowProgress(picProgress As PictureBox, _
  ByVal Value As Long, _
  ByVal Min As Long, _
  ByVal Max As Long, _
  Optional ByVal bShowProzent As Boolean = True)
 
  Dim pWidth As Long
  Dim intProz As Integer
  Dim strProz As String
 
  ' Farben
  Const progBackColor = &HC00000
  Const progForeColor = vbBlack
  Const progForeColorHighlight = vbWhite
 
  ' Plausibilitätsprüfungen
  If Value < Min Then Value = Min
  If Value > Max Then Value = Max
 
  ' Prozentwert ausrechnen
  If Max > 0 Then
    intProz = Int(Value / Max * 100 + 0.5)
  Else
    intProz = 100
  End If
 
  With picProgress
    ' Prüfen, ob AutoReadraw=True
    If .AutoRedraw = False Then .AutoRedraw = True
 
    ' Inhalt löschen
    picProgress.Cls
 
    If Value > 0 Then
 
      ' Balkenbreite
      pWidth = .ScaleWidth / 100 * intProz
 
      ' Balken anzeigen
      picProgress.Line (0, 0)-(pWidth, .ScaleHeight), _
        progBackColor, BF
 
      ' Prozentanzeige
      If bShowProzent Then
        strProz = CStr(intProz) & " %"
        .CurrentX = (.ScaleWidth - .TextWidth(strProz)) / 2
        .CurrentY = (.ScaleHeight - .TextHeight(strProz)) / 2
 
        ' Vordergrundfarbe
        If pWidth >= .CurrentX Then
          .ForeColor = progForeColorHighlight
        Else
          .ForeColor = progForeColor
        End If
 
        picProgress.Print strProz
      End If
    End If
  End With
End Sub
' Ist der Download beendet,
' MsgBox anzeigen und die Batch-Datei erstellen...
Private Sub FileDownload_Finished()
  MsgBox "Download fertig gestellt! Deponie v2 wird nun beendet."
  Screen.MousePointer = vbDefault
  Set FileDownload = Nothing
  Call CreateBatch(App.Path & "\" & App.EXEName & ".e32", App.Path & "\" & _
    App.EXEName & ".exe")
  EnableContainer FRM_SETUP, FrameDl, False
  cmdAbortDl.Enabled = True
  cmdAbort.Enabled = False
  cmdOK.Enabled = False
  cmdApply.Enabled = False
 
  'Fenster schließen und Update Status an MDI Container übergeben
  END_APP_UPDATE = True
  Unload Me
  Exit Sub
End Sub
Vielleicht hat jemand eine Idee.. auf jeden Fall schonmal Danke

mfg
LE-Tarantino
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Workshop Internet-Update - 100% Prozessorlast!?632LE-Tarantino30.08.06 23:11
Re: Workshop Internet-Update - 100% Prozessorlast!?358Martin Mörtl31.08.06 11:10

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel