Download-Progressbar + Picture

  • 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
    [autoit]


    #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

    [/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit]

    MfG
    trallala

  • mhh entweder ist mein internet zu schnell oder bei mir werden einfach keine bilder angezeigt...ich habs so verstanden dass z.b. bei 50 % bild 1 angezeigt wird und bei 75% bild 2 usw....aber nun gut dass ist doch schonmal nen sehr guter anfang ;) nettes script bestimmt in zukunft irgendwann hilfreich ;)
    :keks:

    weiter so
    der snoozer

  • Hallo,

    2) Versuch:

    Spoiler anzeigen
    [autoit]


    #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 Const $WS_EX_TOPMOST = 0x00000008
    Global $file_size_bytes = 1
    Global $file_size = 1
    $Datei = "sav32sfx.exe"
    $Quelle = "http://www.sophos.com/tools/sav32sfx.exe"
    $Ziel = @ScriptDir & $Datei
    $Form1 = GUICreate("", 400, 240, -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($Progress1,0xdbdbdb)
    $Label1 = GUICtrlCreateLabel("QUELLE : " & $Quelle,24,30,358,17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("ZIEL : " & $Ziel,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)
    $Label5 = GUICtrlCreateLabel("",325,190,50,17, $SS_RIGHT)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Group2 = GUICtrlCreateGroup("", 8, 148, 382, 80)
    $Group3 = GUICtrlCreateGroup("", 24, 180, 300, 25)
    GUICtrlCreatePic("Bild.jpg", 24, 180, 300, 25, BitOR($SS_NOTIFY,$WS_GROUP))
    $trallala = GUICtrlCreateLabel("",24,180,300,25)
    GUISetState(@SW_SHOW)
    _download_progress($Datei,$Quelle)
    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= Round( (($iniDown/$file_size_bytes)*100) , 2)
    GUICtrlSetColor($Progress1,0xdbdbdb)
    $dif_bytes = @InetGetBytesRead - $iniDown
    GUICtrlSetData ($Progress1,$xx)
    GUICtrlSetData($Label3,"Download: "& $iniDown & " / " & $file_size);$msg_downloading)
    GUICtrlSetData($Label4,StringFormat("%3.2f",$xx) & " %")
    GUICtrlSetPos($trallala,24+int(300*($xx/100)),180,300-Int($xx*(300/100)),25)
    GUICtrlSetData($Label5,StringFormat("%3.2f",$xx) & " %")
    Wend
    EndFunc

    [/autoit]

    MfG
    trallala :tier:

  • mhh...wenn ich jetzte ner endlosschleife um das script bastel dann überlast ich den server wo das gehostet ist^^

    ich finds richtig cool :keks:
    flimmert zwischendurch minimal ganz kurz aber des merkt man kaum^^
    weiter so :klatschen:

  • Hallo,

    3) Versuch: Diesmal nicht so langsam wie bei der ersten beiden Versionen.
    Das Bild wird über einer 2.GUI rükwärst reingeschoben (Rücklauf-Progressbar).
    Ist das Bild vollständig zu sehen, ist der download komplett *g*

    Spoiler anzeigen
    [autoit]


    #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 Const $WS_EX_TOPMOST = 0x00000008
    Global $file_size_bytes = 1
    Global $file_size = 1
    $Datei = "sav32sfx.exe"
    $Quelle = "http://www.sophos.com/tools/sav32sfx.exe"
    $Ziel = @ScriptDir & $Datei
    $Form1 = GUICreate("", 400, 240, -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($Progress1,0xdbdbdb)
    $Label1 = GUICtrlCreateLabel("QUELLE : " & $Quelle,24,30,358,17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("ZIEL : " & $Ziel,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)
    $Label5 = GUICtrlCreateLabel("",325,190,50,17, $SS_RIGHT)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Group2 = GUICtrlCreateGroup("", 8, 148, 382, 80)
    $Form2 = GUICreate("", 300, 25, @DesktopWidth/2 -178,40+@DesktopHeight/2,$WS_POPUPWINDOW,$WS_EX_TOOLWINDOW)
    GUISetBkColor(0x004A6F)
    $trallala = GUICtrlCreatePic("Bild.jpg", 1, 1, 300, 25, BitOR($SS_NOTIFY,$WS_GROUP))
    GUISetState(@SW_SHOW,$Form1)
    GUISetState(@SW_SHOW,$Form2)
    _download_progress($Datei,$Quelle)
    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= Round( (($iniDown/$file_size_bytes)*100) , 2)
    GUICtrlSetColor($Progress1,0xdbdbdb)
    $dif_bytes = @InetGetBytesRead - $iniDown
    GUICtrlSetData ($Progress1,$xx)
    GUICtrlSetData($Label3,"Download: "& $iniDown & " / " & $file_size)
    GUICtrlSetData($Label4,StringFormat("%3.2f",$xx) & " %")
    GUICtrlSetPos($trallala,300-Int($xx*(300/100)),1)
    GUICtrlSetData($Label5,StringFormat("%3.2f",100.00-$xx) & " %")
    Wend
    EndFunc

    [/autoit]

    MfG
    trallala