Hallo,
Gtaspider hatte mich angesprochen, ob es möglich sei eine Progessbar mit aneinander laufenden Bildern an Stelle des schlicht einfachen Balken hinzubekommen - Nun ja ich habe es probiert.
1) Versuch:
Spoiler anzeigen
#NoTrayIcon
Global Const $ES_AUTOVSCROLL = 64
Global Const $ES_AUTOHSCROLL = 128
Global Const $ES_WANTRETURN = 4096
Global Const $WS_POPUPWINDOW = 0x80880000
Global Const $WS_EX_CLIENTEDGE = 0x00000200
Global Const $WS_EX_TOOLWINDOW = 0x00000080
Global Const $WS_GROUP = 0x00020000
Global Const $ES_READONLY = 0x0800
Global Const $GUI_SHOW = 16
Global Const $GUI_HIDE = 32
Global Const $GUI_DISABLE = 128
Global Const $PBS_SMOOTH = 1
Global Const $PBS_VERTICAL = 4
Global Const $SS_LEFT = 0x0000
Global Const $SS_RIGHT = 0x0002
Global Const $SS_CENTER = 0x01
Global Const $WS_EX_OVERLAPPEDWINDOW = 0x00000300
Global Const $WS_EX_TRANSPARENT = 0x00000020
Global Const $SS_NOTIFY = 0x0100
Global $file_size_bytes = 1
Global $file_size = 1
$Datei1 = "sav32sfx.exe"
$Quelle1 = "http://www.sophos.com/tools/sav32sfx.exe"
$Ziel1 = @ScriptDir & $Datei1
;
$Datei2 = "web_ides.exe"
$Quelle2 = "http://www.sophos.com/downloads/ide/web_ides.exe"
$Ziel2 = @ScriptDir & $Datei2
;
$Form1 = GUICreate("", 400, 350, -1, -1,$WS_POPUPWINDOW,$WS_EX_TOOLWINDOW)
GUISetBkColor(0x004A6F)
GUICtrlSetColor(-1, 0xFFFFFF)
$Group1 = GUICtrlCreateGroup("Sophus-Download", 8, 8, 382, 134)
GUICtrlSetColor(-1, 0xFFFFFF)
$Progress1 = GUICtrlCreateProgress(24, 102, 300, 17, $PBS_SMOOTH)
GUICtrlSetBkColor(-1, 0x000080)
;GUICtrlSetColor(-1,0xff0000)
$Label1 = GUICtrlCreateLabel("QUELLE : " & $Quelle1,24,30,358,17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label2 = GUICtrlCreateLabel("ZIEL : " & $Ziel1,24,50,358,17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label3 = GUICtrlCreateLabel("",24,70,358,17)
GUICtrlSetColor(-1, 0xFFFFFF)
$Label4 = GUICtrlCreateLabel("",325,102,50,17, $SS_RIGHT)
GUICtrlSetColor(-1, 0xFFFFFF)
$Group2 = GUICtrlCreateGroup("", 8, 142, 382, 100)
GUISetState(@SW_SHOW)
;--> 1. Datei download
;_download_progress($Datei1,$Quelle1)
;Sleep(1000)
;--> 2. Datei download
;$Label1 = GUICtrlCreateLabel("QUELLE : " & $Quelle2,24,30,358,17)
;GUICtrlSetColor(-1, 0xFFFFFF)
;$Label2 = GUICtrlCreateLabel("ZIEL : " & $Ziel2,24,50,358,17)
;GUICtrlSetColor(-1, 0xFFFFFF)
_download_progress($Datei2,$Quelle2)
Sleep(1000)
;
Func _download_progress($filename, $fileurl)
$file_size_bytes = InetGetSize($fileurl)
$file_size = $file_size_bytes
InetGet($fileurl, $filename, 1, 1)
While @InetGetActive
Sleep(50)
$iniDown = @InetGetBytesRead
$xx = porcentDown($iniDown, $file_size)
GUICtrlSetColor($Progress1,0xdbdbdb)
$msg_downloading = "Download: " & $iniDown & " / " & $file_size
$dif_bytes = @InetGetBytesRead - $iniDown
GUICtrlSetData ($Progress1,$xx)
GUICtrlCreatePic("A1.bmp", 24+50*int($xx/20), 170, 50, 38, BitOR($SS_NOTIFY,$WS_GROUP))
GUICtrlSetData($Label3,$msg_downloading)
GUICtrlSetData($Label4,StringFormat("%3.2f",$xx) & " %")
Wend
EndFunc
;
Func porcentDown($iniDown, $file_size)
Return Round( (($iniDown/$file_size_bytes)*100) , 2)
EndFunc
;
Func _Filesize($iValue, $sFormat, $iDecimal = 10)
Local $sReturn, $iB, $iKB, $iMB, $iGB
If $iValue = 0 Then
Return "0 Bytes"
EndIf
If Not StringIsDigit(Round($iValue)) Or Not StringIsDigit(Round($iDecimal)) Then
SetError(1)
Return 0
EndIf
; Conversion Chart
$iB = $iValue
$iKB = ($iB / 1024)
$iMB = ($iKB / 1024)
$iGB = ($iMB / 1024)
Select
Case $sFormat = "0" ; Auto Select Format Display Type
If $iValue >= 1073741824 Then
$iValue = Round($iGB,$iDecimal) & " GB"
ElseIf $iValue >= 1048576 Then
$iValue = Round($iMB,$iDecimal) & " MB"
ElseIf $iValue >= 1024 Then
$iValue = Round($iKB,$iDecimal) & " KB"
ElseIf $iValue >= 1 Then
$iValue = Round($iB,$iDecimal) & " B "
EndIf
Case $sFormat = "1"
$iValue = Round($iGB,$iDecimal) & " GB"
Case $sFormat = "2"
$iValue = Round($iMB,$iDecimal) & " MB"
Case $sFormat = "3"
$iValue = Round($iKB,$iDecimal) & " KB"
Case $sFormat = "4"
$iValue = Round($iB,$iDecimal) & " B "
EndSelect
Return $iValue
EndFunc ;==>_Filesize
;--EOF
MfG
trallala