Download via Proxy

  • Hey,
    habe ein Problem mit folgendem Code (lief gestern Abend noch ...)

    Den Source für den Downloader hab ich iwo im Inet gefunden... weiß leider nicht genau wo - es ist auf jeednfall ncih von mir

    Ohne Proxy geht das Script, mit nicht mehr - Proxy funktioniert aber im FF

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <IE.au3>

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

    Opt("GUIOnEventMode", 1)
    Opt("WinTitleMatchMode", 2)
    Global $size, $get, $percent, $dauer, $speed, $dlstart, $speed2, $dTimer, $mTimer, $listItem[1000]
    $dlstart = 0
    AutoItSetOption("TrayIconHide", 1)

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

    $main = GUICreate("Downloadmanager by BlazZer", 500, 340)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
    GUICtrlCreateTab(0, 0, 500, 340)
    GUICtrlCreateTabItem("Downloadanzeige")
    $progress = GUICtrlCreateProgress(0, 305, 500, 35)
    GUICtrlCreateLabel("Downloadinformationen:", 10, 185, 480, 20)
    $bCopy = GUICtrlCreateLabel("?? von ?? KB kopiert", 10, 285, 480, 20)
    $dSpeed = GUICtrlCreateLabel("Übertragungsrate: ?? KB/s", 10, 265, 480, 20)
    $dUrl = GUICtrlCreateLabel("Download von: ??", 10, 225, 480, 20)
    $sUrl = GUICtrlCreateLabel("Download nach: ??", 10, 245, 480, 20)
    $dDauer = GUICtrlCreateLabel("Geschätzte Restdauer: ??", 10, 205, 480, 20)
    GUICtrlCreateLabel("Vollständigen Downloadlink eingeben:", 10, 30, 480, 20)
    $urlpath = GUICtrlCreateInput("", 10, 50, 480, 20)
    GUICtrlCreateLabel("Dateispeicherpfad angeben", 10, 80, 480, 20)
    $savepath = GUICtrlCreateInput("", 10, 100, 430, 20)
    $searchbutton = GUICtrlCreateButton("...", 445, 100, 50, 20, BitOR($BS_CENTER, $BS_VCENTER))
    GUICtrlSetOnEvent($searchbutton, "_savedialog")
    GUICtrlSetFont($searchbutton, 14, 400)
    $cancel = GUICtrlCreateButton("Abbrechen", 380, 155, 100, 25)
    GUICtrlSetOnEvent($cancel, "_abbrechenTrue")
    $openfolder = GUICtrlCreateButton("Ordner öffnen", 260, 155, 100, 25)
    GUICtrlSetOnEvent($openfolder, "_openfolder")
    $open = GUICtrlCreateButton("Ausführen", 140, 155, 100, 25)
    GUICtrlSetOnEvent($open, "_open")
    $start = GUICtrlCreateButton("Download starten", 20, 155, 100, 25)
    GUICtrlSetOnEvent($start, "_download")
    $check = GUICtrlCreateCheckbox("Nach beenden des Downloads das Fenster schließen", 10, 130, 300, 20)
    $tItem = GUICtrlCreateTabItem("Bisherige Downloads")
    $listView = GUICtrlCreateListView("Zeit:|Download von:|Download nach:", 0, 20, 500, 320, $LVS_NOSORTHEADER)
    _GUICtrlListView_SetColumnWidth($listView, 0, 110)
    _GUICtrlListView_SetColumnWidth($listView, 1, 195)
    _GUICtrlListView_SetColumnWidth($listView, 2, 195)
    _showList()
    GUICtrlCreateTabItem("")

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

    $listMenu = GUICtrlCreateContextMenu($listView)
    $mDelete = GUICtrlCreateMenuItem("Alle Einträge löschen", $listMenu)
    GUICtrlSetOnEvent($mDelete, "_deleteList")
    $mDeleteItem = GUICtrlCreateMenuItem("Eintrag löschen", $listMenu)
    GUICtrlSetOnEvent($mDeleteItem, "_deleteListItem")
    $mMenu = GUICtrlCreateMenu("Datei", $listMenu)
    $mOpen = GUICtrlCreateMenuItem("ausführen", $mMenu)
    GUICtrlSetOnEvent($mOpen, "_openListItem")
    $mOpenFolder = GUICtrlCreateMenuItem("Ordner öffnen", $mMenu)
    GUICtrlSetOnEvent($mOpenFolder, "_openListItemFolder")
    $mDlListItem = GUICtrlCreateMenuItem("downloaden", $mMenu)
    GUICtrlSetOnEvent($mDlListItem, "_downloadListItem")

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

    GUISetState(@SW_SHOW, $main)
    GUICtrlSetState($open, $GUI_DISABLE)
    GUICtrlSetState($openfolder, $GUI_DISABLE)
    GUICtrlSetState($cancel, $GUI_DISABLE)
    $timer2 = TimerInit()
    $timer3 = TimerInit()
    $timer4 = TimerInit()
    $timer5 = TimerInit()
    HttpSetProxy(2, "scorpion.premiumize.me:80", "User", "PW")
    If Not FileExists(@WindowsDir & "\Media\tada.wav") Then FileInstall("C:\WINDOWS\Media\tada.wav", @TempDir & "\tada.wav") ;falls nich jeder tada.wav hat
    If Not FileExists(@TempDir & "\Downloads.log") Or FileRead(@TempDir & "\Downloads.log") = "" Then
    GUICtrlSetState($mDelete, $GUI_DISABLE)
    GUICtrlSetState($mDeleteItem, $GUI_DISABLE)
    GUICtrlSetState($mOpen, $GUI_DISABLE)
    GUICtrlSetState($mOpenFolder, $GUI_DISABLE)
    GUICtrlSetState($mDlListItem, $GUI_DISABLE)
    EndIf

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

    While 1

    If BitAND(GUICtrlRead($check), $GUI_CHECKED) And FileGetSize(GUICtrlRead($savepath)) = $size Then
    InetClose($get)
    Exit
    EndIf
    If $dlstart = 1 Then
    _calcspeed()
    _dlinfo()
    EndIf
    If InetGetInfo($get, 2) = True Then
    GUICtrlSetState($open, $GUI_ENABLE)
    GUICtrlSetState($openfolder, $GUI_ENABLE)
    _abbrechen(False)
    EndIf
    If $dlstart = 1 Then
    If TimerDiff($timer4) >= 500 Then
    GUICtrlSetState($cancel, $GUI_ENABLE)
    GUICtrlSetState($savepath, $GUI_DISABLE)
    GUICtrlSetState($urlpath, $GUI_DISABLE)
    GUICtrlSetState($mDlListItem, $GUI_DISABLE)
    $timer4 = TimerInit()
    EndIf
    ElseIf FileGetSize(GUICtrlRead($savepath)) = $size And FileRead(@TempDir & "\Downloads.log") <> "" Then
    If TimerDiff($timer4) >= 500 Then
    GUICtrlSetState($mDlListItem, $GUI_ENABLE)
    EndIf
    Else
    If TimerDiff($timer4) >= 500 Then
    GUICtrlSetState($cancel, $GUI_DISABLE)
    GUICtrlSetState($savepath, $GUI_ENABLE)
    GUICtrlSetState($urlpath, $GUI_ENABLE)
    $timer4 = TimerInit()
    EndIf
    EndIf
    WEnd

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

    Func _close()
    If FileGetSize(GUICtrlRead($savepath)) = $size Then
    InetClose($get)
    Exit
    Else
    InetClose($get)
    FileDelete(GUICtrlRead($savepath))
    Exit
    EndIf
    EndFunc ;==>_close

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

    Func _openfolder()
    $str = StringInStr(GUICtrlRead($savepath), "\", 1, -1)
    $sPath = StringLeft(GUICtrlRead($savepath), $str - 1)
    Run("explorer.exe /root ," & $sPath);ordner öffnen
    EndFunc ;==>_openfolder

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

    Func _open()
    ShellExecute(GUICtrlRead($savepath));ausführen
    EndFunc ;==>_open

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

    Func _download()
    If GUICtrlRead($savepath) = "" Or GUICtrlRead($urlpath) = "" Then
    MsgBox(48, "Fehler", "Keine Speicheradresse oder keine Downloadadresse eingeben!!")
    Return SetError(1, 0, 1)
    EndIf
    If Not StringInStr(GUICtrlRead($urlpath), "htt") Then
    MsgBox(48, "Fehler", "Url Exsistiert nicht oder Server ist nicht online")
    Return SetError(2, 0, 2)
    EndIf
    $str = StringInStr(GUICtrlRead($savepath), "\", 1, -1)
    $sPath = StringLeft(GUICtrlRead($savepath), $str - 1)
    If Not FileExists($sPath) Then
    MsgBox(48, "Fehler", "Der Pfad exsistiert nicht")
    Return SetError(3, 0, 3)
    EndIf

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

    $get = InetGet(GUICtrlRead($urlpath), GUICtrlRead($savepath), 1, 1) ;download starten
    $size = InetGetSize(GUICtrlRead($urlpath))
    $dlstart = 1
    FileWriteLine(@TempDir & "\Downloads.log", @MDAY & "." & @MON & "." & @YEAR & "-" & @HOUR & ":" & @MIN & ":" & @SEC & "|" & GUICtrlRead($urlpath) & "|" & GUICtrlRead($savepath))
    _refreshList()
    EndFunc ;==>_download

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

    Func _dlinfo() ;setzt die ganzen Downloadinfos in die Label bzw. Progressbar
    $dBytes = InetGetInfo($get, 0) ;bytes holen
    GUICtrlSetData($progress, Round($dBytes / $size * 100));FileGetSize(GUICtrlRead($savepath))/$size*100)) ;ausrechnen und in Progressbar setzen
    GUICtrlSetData($bCopy, $dBytes / 1000 & " von " & $size / 1000 & " KB kopiert") ;anzeigen wieviel bytes von ??bytes breites gedownloadet sinf
    $percent = Round($dBytes / $size * 100) ;prozent ausrechnen
    WinSetTitle("Downloadmanager by BlazZer", "", "(" & $percent & "%) Downloadmanager by BlazZer")
    GUICtrlSetData($dSpeed, "Übertragungsrate: " & $speed & "KB/s") ;speed anzeigen siehe _calcspeed()
    GUICtrlSetData($dUrl, "Download von: " & GUICtrlRead($urlpath)) ;dl pfad anzeigen
    GUICtrlSetData($sUrl, "Download nach: " & GUICtrlRead($savepath)) ;save pfad anzeigen
    If $dauer = 2 Then $dauer = "Einige Sekunden verbleibend"
    GUICtrlSetData($dDauer, "Geschätzte Restdauer: " & $dauer) ;restdauer anzeigen siehe _calcspeed()
    If InetGetInfo($get, 2) = True Then ;wenn alles gedownloadet sound spielen
    If Not FileExists(@WindowsDir & "\Media\tada.wav") Then ;schauen ob sound existiert
    SoundPlay(@TempDir & "\tada.wav")
    Else
    SoundPlay(@WindowsDir & "\Media\tada.wav")
    EndIf
    EndIf
    EndFunc ;==>_dlinfo

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

    Func _savedialog()
    $path = FileSaveDialog("Speicherort für die Datei auswählen", @DesktopDir, "Alle Dateien (*.*)", 18)
    If Not @error Then GUICtrlSetData($savepath, $path) ;savepath in die input schreiben
    EndFunc ;==>_savedialog

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

    Func _calcspeed()
    $vorher = InetGetInfo($get, 0)
    Sleep(1000)
    $nachher = InetGetInfo($get, 0) - $vorher
    $speed = Round($nachher / 1000)
    $bSize = $size / 1000 - InetGetInfo($get, 0) / 1000
    $time = Round($bSize / $speed)
    $dauer = _mySec2Time($time, "Seconds")
    EndFunc ;==>_calcspeed

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

    Func _abbrechen($del = False) ;dl wird abgebrochen und alles resetet
    $dlstart = 0
    InetClose($get)
    GUICtrlSetData($dSpeed, "Übertragungsrate: ??KB/s")
    GUICtrlSetData($dUrl, "Download von: ??")
    GUICtrlSetData($sUrl, "Download nach: ??")
    GUICtrlSetData($dDauer, "Geschätzte Restdauer: ??")
    GUICtrlSetData($progress, 0)
    GUICtrlSetData($bCopy, "?? von ?? KB kopiert")
    WinSetTitle("Downloadmanager by BlazZer", "", "Downloadmanager by BlazZer")
    If $del = True Then FileDelete(GUICtrlRead($savepath))
    EndFunc ;==>_abbrechen

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

    Func _abbrechenTrue()
    _abbrechen(True)
    EndFunc ;==>_abbrechenTrue

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

    Func _showList()
    For $i = 1 To _FileCountLines(@TempDir & "\Downloads.log")
    $sRead = FileReadLine(@TempDir & "\Downloads.log", $i)
    $listItem[$i] = GUICtrlCreateListViewItem($sRead, $listView)
    If $i = 1000 Then
    _savelist()
    Return
    EndIf
    Next
    EndFunc ;==>_showList

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

    Func _deleteListItem()
    $listRead = GUICtrlRead($listView)
    GUICtrlDelete($listRead)
    _savelist()
    If _FileCountLines(@TempDir & "\Downloads.log") = 0 Then
    GUICtrlSetState($mDelete, $GUI_DISABLE)
    GUICtrlSetState($mDeleteItem, $GUI_DISABLE)
    GUICtrlSetState($mOpen, $GUI_DISABLE)
    GUICtrlSetState($mOpenFolder, $GUI_DISABLE)
    GUICtrlSetState($mDlListItem, $GUI_DISABLE)
    EndIf
    EndFunc ;==>_deleteListItem

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

    Func _refreshList()
    If _FileCountLines(@TempDir & "\Downloads.log") >= 1 Then
    GUICtrlSetState($mDelete, $GUI_ENABLE)
    GUICtrlSetState($mDeleteItem, $GUI_ENABLE)
    GUICtrlSetState($mOpen, $GUI_DISABLE)
    GUICtrlSetState($mOpenFolder, $GUI_DISABLE)
    GUICtrlSetState($mDlListItem, $GUI_DISABLE)
    EndIf
    For $i = 1 To ControlListView("Downloadmanager by BlazZer", "", $listView, "GetItemCount")
    GUICtrlDelete($listItem[$i])
    Next
    _showList()
    EndFunc ;==>_refreshList

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

    Func _deleteList()
    For $i = 1 To ControlListView("Downloadmanager by BlazZer", "", $listView, "GetItemCount")
    GUICtrlDelete($listItem[$i])
    Next
    _FileCreate(@TempDir & "\Downloads.log")
    GUICtrlSetState($mDelete, $GUI_DISABLE)
    GUICtrlSetState($mDeleteItem, $GUI_DISABLE)
    GUICtrlSetState($mOpen, $GUI_DISABLE)
    GUICtrlSetState($mOpenFolder, $GUI_DISABLE)
    GUICtrlSetState($mDlListItem, $GUI_DISABLE)
    EndFunc ;==>_deleteList

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

    Func _savelist()
    $sListRead = ""
    For $i = 1 To ControlListView("Downloadmanager by BlazZer", "", $listView, "GetItemCount")
    $sListRead &= GUICtrlRead($listItem[$i])
    Next
    _FileCreate(@TempDir & "\Downloads.log")
    FileWrite(@TempDir & "\Downloads.log", $sListRead)
    EndFunc ;==>_savelist

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

    Func _openListItem()
    Local $sEintrag, $aSplit
    $sEintrag = GUICtrlRead(GUICtrlRead($listView))
    $aSplit = StringSplit($sEintrag, "|")
    If Not FileExists($aSplit[3]) Then Return MsgBox(48, "Fehler", "Die Datei Existiert nicht an diesen Ort")
    ShellExecute($aSplit[3])
    EndFunc ;==>_openListItem

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

    Func _openListItemFolder()
    Local $sEintrag, $aSplit, $str, $sPath
    $sEintrag = GUICtrlRead(GUICtrlRead($listView))
    $aSplit = StringSplit($sEintrag, "|")
    $str = StringInStr($aSplit[3], "\", 1, -1)
    $sPath = StringLeft($aSplit[3], $str - 1)
    Run("explorer.exe /root ," & $sPath);ordner öffnen
    EndFunc ;==>_openListItemFolder

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

    Func _downloadListItem()
    Local $sEintrag, $aSplit
    If $dlstart = 1 Then Return SetError(1, 0, 1)
    $sEintrag = GUICtrlRead(GUICtrlRead($listView))
    $aSplit = StringSplit($sEintrag, "|")
    GUICtrlSetData($urlpath, $aSplit[2])
    GUICtrlSetData($savepath, $aSplit[3])
    _download()
    EndFunc ;==>_downloadListItem

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

    ;_mySec2Time by BlazZer _mySec2Time("Sekunden/Millisekunden","Milliseconds/Seconds")
    ;Ausgegebenes Format: Hours:Minutes:Seconds
    Func _mySec2Time($mSec, $format = "Seconds")
    Local $iSeconds, $min, $sec, $iHours
    If $format = "Milliseconds" Then $mSec = $mSec / 1000
    If Not IsNumber($mSec) Then Return SetError(1, 0, 1)
    If $mSec <= 0 Then Return SetError(2, 0, 2)
    If $format <> "Milliseconds" And $format <> "Seconds" Then Return SetError(3, 0, 3)
    $iHours = Int($mSec / 3600)
    $min = Mod($mSec, 3600)
    $iMinutes = Int($min / 60)
    $sec = Mod($min, 60)
    $iSeconds = Int($sec)
    Return $iHours & ":" & $iMinutes & ":" & $iSeconds
    EndFunc ;==>_mySec2Time

    [/autoit]

    Wie man sieht geht es um premiumize

    Einmal editiert, zuletzt von Scheffi (4. April 2013 um 20:13)

  • habe ein Problem mit folgendem Code (lief gestern Abend noch ...)


    Dann nimm deinen Sicherungsstand von gestern abend.

    Ohne Proxy geht das Script, mit nicht mehr - Proxy funktioniert aber im FF


    Welche Fehlermeldungen treten jetzt auf? Hast du zwischen gestern abend und heute den Proxy eingebaut oder geändert?

    mfg autoBert

  • das ist der Stand von gestern :)

    Es treten keine Fehlermeldungen auf, ohne Proxy startet er den Download und alles läuft, mit lädt das Programm nur ewig lange und sagt dann Download abgeschlossen obwohl es nicht der Fall ist.
    Am Proxy wurde nichts geändert

    Edit: Geht wieder... warum auch immer, hab Autoit neu installiert, evt war ine include File kaputt...

    Einmal editiert, zuletzt von Scheffi (4. April 2013 um 20:14)