Guten Abend Zusammen,
ich habe hier einen Patcher am laufen, welcher sich von meinem Webspace Daten ziehen soll.
Dies klappt auch soweit bei allen Datentypen, bis auf zwei. .eix & .epk.
Die Dateien wurden zB mit 669KB Dateigröße aufs Webspace geladen und werden mit dem Patcher mit 7KB Dateigröße heruntergeladen.
Kann ich mir nicht erklären..
Der Code:
AutoIt
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Comment=made by
#AutoIt3Wrapper_Res_Description=made by
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1
#AutoIt3Wrapper_Res_LegalCopyright=made by
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <GUIListView.au3>
#include <MsgBoxConstants.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <InetConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <Crypt.au3>
Global $serverhttp = "http://localhost/"
Global $patcherini = (@TempDir & "\patcher.ini")
Global $patcherurl = ($serverhttp & "patcher.ini")
Global $homepage = "http://localhost/"
Global $execute = "starter.exe"
If FileExists($patcherini) Then
FileDelete($patcherini)
EndIf
If InetGetSize($patcherurl) = 0 Then
MsgBox(0, "Error", "Patcherini konnte nicht geladen werden. Patchserver konnte nicht erreicht werden.")
Exit
Else
InetGet($patcherurl, $patcherini, $INET_FORCERELOAD)
EndIf
GUICreate("Patcher", 377, 313, 192, 124)
GUICtrlCreateLabel("Fortschritt:", 8, 80, 56, 17)
GUICtrlCreateLabel("News:", 8, 144, 37, 17)
GUICtrlCreateLabel("Datei Download:", 8, 16, 83, 17)
$progr_fortschritt = GUICtrlCreateProgress(8, 104, 249, 25)
$progr_dateidown = GUICtrlCreateProgress(8, 40, 249, 17)
$label_dateidown = GUICtrlCreateLabel("", 96, 16, 68, 17)
$button_start = GUICtrlCreateButton("Start", 280, 112, 89, 49)
$button_patch = GUICtrlCreateButton("Patch", 280, 8, 89, 33)
$button_cc = GUICtrlCreateButton("Config Client", 280, 80, 89, 25)
$button_homepage = GUICtrlCreateButton("Homepage", 280, 48, 89, 25)
$list_news = GUICtrlCreateListView("Datum|Nachricht", 8, 168, 361, 136)
_GUICtrlListView_SetColumnWidth($list_news, 1, 290)
GUISetState(@SW_SHOW)
GUICtrlSetState($button_start, $GUI_DISABLE)
Local $val1
$val1 = IniReadSection($patcherini, "News")
If Not IsArray($val1) Then
MsgBox(0, "Error", "1002. Array Defekt.")
Exit
EndIf
For $i = 1 To UBound($val1) -1
GUICtrlCreateListViewItem($val1[$i][1], $list_news)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button_cc
Run( "config.exe", @WorkingDir)
Case $button_patch
_patch()
Case $button_homepage
ShellExecute($homepage)
Case $button_start
Run($execute, @WorkingDir)
Exit
EndSwitch
WEnd
Func _patch()
Local $val
$val = IniReadSection($patcherini, "Files")
If Not IsArray($val) Then
MsgBox(0, "Error", "1003. Array Defekt.")
Exit
EndIf
_Crypt_Startup()
For $i = 1 To UBound($val) -1
GUICtrlSetData($progr_fortschritt, 100/Ubound($val) * $i)
Sleep(150)
$localfile = StringReplace($val[$i][0], "/", "\")
$localhash = _Crypt_HashFile($localfile, $CALG_MD5)
$remotehash = $val[$i][1]
If $localhash = $remotehash Then
sleep(1)
Else
FileDelete($localfile)
$Download = InetGet($serverhttp & $val[$i][0], $localfile, $INET_FORCERELOAD, 1)
$sizeb = InetGetSize($serverhttp & $val[$i][0], $INET_FORCERELOAD)
Do
$BytesDownloaded = InetGetInfo($Download, 0)
$FileProgress = Floor(($BytesDownloaded / $sizeb) * 100)
If GUICtrlRead($progr_dateidown) <> $FileProgress Then
GUICtrlSetData($progr_dateidown, $FileProgress)
GUICtrlSetData($label_dateidown, $FileProgress & " %")
EndIf
Until InetGetInfo($Download, 2)
GUICtrlSetData($label_dateidown, "")
EndIf
Next
GUICtrlSetData($progr_fortschritt, 100)
_Crypt_Shutdown()
GUICtrlSetState($button_start, $GUI_ENABLE)
EndFunc
Alles anzeigen
Wäre echt klasse, wenn dazu jemand eine Idee hat. Bis jetzt ists mir nur bei den zwei Dateitypen aufgefallen.
Danke !
Gruß
Paul01