Hey Leute, mein Programm hat auf manchen Windows 7 Rechnern Probleme, woran könnte das liegen ?
Der Sourcecode hier mal beigelegt, die Zip.au3 gibts hier: Zip.au3
Source
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\Grafik\Icon.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; Minecraft Downgrader
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <GUIListView.au3>
#include <Zip.au3>
HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB6 (.NET CLR 2.0.50727)")
Global $V = "1.1_02"
Global $LGUI, $LabelState
#Region ### START Koda GUI section ### Form=
Global $Patcher = GUICreate("Minecraft Patcher", 400, 207, -1, -1)
$Label1 = GUICtrlCreateLabel("Minecraft Patcher 1.1_02", 85, 8, 200, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("©Mattthias",340, 184, 56, 17)
$Patch = GUICtrlCreateButton("Patch Minecraft", 163, 176, 91, 25, $WS_GROUP)
$PatchListView = GUICtrlCreateListView("Version|Date|Note", 8, 48, 380, 126)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 110)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 110)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 150)
#EndRegion ### END Koda GUI section ###
Global $Update, $Patches, $Dates, $Notes
_StartUp()
Global $LPatches[UBound($Patches) - 1]
_AddPatches()
GUISetState(@SW_SHOW, $Patcher)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Patch
_DownloadPatch()
EndSwitch
WEnd
Func _StartUp()
$LGUI = GUICreate("Loading Ressources", 250, 50, -1, -1, $WS_CAPTION)
$LabelState = GUICtrlCreateLabel("Checking for Updates", 15, 7, 250, 50)
GUISetState(@SW_SHOW, $LGUI)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
$Update = BinaryToString(InetRead("http://mattthias.bplaced.net/Info/Version.txt"))
If $Update > $V Then
MsgBox(0, "Update", "New Update avaible." & @CRLF & "Please visit us and download.")
EndIf
GUICtrlSetData($LabelState, "Checking for Patches")
$Patches = StringSplit(BinaryToString(InetRead("http://mattthias.bplaced.net/Info/Patches.txt")), "#")
$Dates = StringSplit(BinaryToString(InetRead("http://mattthias.bplaced.net/Info/Dates.txt")), "#")
$Notes = StringSplit(BinaryToString(InetRead("http://mattthias.bplaced.net/Info/Notes.txt")), "#")
GUICtrlSetData($LabelState, "Finished")
Sleep(500)
GUICtrlSetData($LabelState, "Finished.")
Sleep(500)
GUICtrlSetData($LabelState, "Finished..")
Sleep(500)
GUICtrlSetData($LabelState, "Finished...")
Sleep(500)
GUISetState(@SW_HIDE, $LGUI)
EndFunc ;==>_StartUp
Func _AddPatches()
If $Patches[0] = 0 Or $Dates[0] = 0 Or $Notes[0] = 0 Then
MsgBox(0, "Error", "Fail to get Data, please restart program.")
Exit
Else
For $i = 1 To UBound($Patches) - 1
$LPatches[$i - 1] = GUICtrlCreateListViewItem($Patches[$i] & "|" & $Dates[$i] & "|" & $Notes[$i], $PatchListView)
Next
EndIf
EndFunc ;==>_AddPatches
Func _DownloadPatch()
Local $SelectPatch = _GUICtrlListView_GetSelectedIndices($PatchListView, True)
If $SelectPatch[0] = 0 Then
MsgBox(0, "Error", "No patch selected.")
ElseIf $SelectPatch[0] > 1 Then
MsgBox(0, "Error", "Select only one patch.")
ElseIf $SelectPatch[0] = 1 Then
Local $LPatch = _GUICtrlListView_GetItemText($PatchListView, $SelectPatch[1])
__Download($LPatch)
EndIf
EndFunc ;==>_DownloadPatch
Func __Download($LPatch)
DirCreate(@ScriptDir & "\TMP")
Local $DGUI = GUICreate("Patch", 157, 47, -1, -1)
Local $DLabel = GUICtrlCreateLabel("Downloading", 8, 8, 126, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUISetState(@SW_HIDE, $Patcher)
GUISetState(@SW_SHOW, $DGUI)
InetGet("http://mattthias.bplaced.net/Patches/" & $LPatch & ".zip", @ScriptDir & "\TMP\TempPatch.zip")
_Zip_UnZipAll(@ScriptDir & "\TMP\TempPatch.zip", @ScriptDir & "\TMP")
DirMove(@ScriptDir & "\TMP\bin", @AppDataDir & "\.minecraft", 1)
DirRemove(@ScriptDir & "\TMP", 1)
GUICtrlSetData($DLabel, "Finish")
Sleep(500)
GUICtrlSetData($DLabel, "Finish.")
Sleep(500)
GUICtrlSetData($DLabel, "Finish..")
Sleep(500)
GUICtrlSetData($DLabel, "Finish...")
Sleep(500)
GUISetState(@SW_HIDE, $DGUI)
GUISetState(@SW_SHOW, $Patcher)
EndFunc ;==>__Download
GIbt es irgendwelche Optionen zu beachten ?!?!?
MfG Mattthias