ListenDownloader - Fertig

  • Hallo, ich habe mein Listen Downloader fertig.
    Ist zwar noch nicht so ausgereift aber mit dem hat man ja ein entsprechenden Vorteil gegenüber Dateien die mehrere Download Parts brauchen. Also ihr könnt beliebig viele Download Links reinsetzen und auf hinzufügen drücken, habt ihr eure Anzahl klickt ihr auf Starten.
    Und mit Download Link meine ich auch Download Link, z.B. ihr downloadet euch die Hilfe wenn ihr bei Info Links, links auf AutoIt-Hilfe(auch online) klickt. Dann klickt ihr rechts auf die Downloads und geht auf Eigentschaften, den Link der dadrin ist kopiert ihr schließlich in die InputBox!

    Naja, hier ist die Source :D

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Downloader", 581, 228, 192, 124)
    Global $Group1 = GUICtrlCreateGroup("", -8, -8, 105, 57)
    Global $Button1 = GUICtrlCreateButton("Info", 8, 8, 75, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Global $Group2 = GUICtrlCreateGroup("", 104, -8, 473, 201)
    Global $List1 = GUICtrlCreateList("", 448, 0, 121, 188)
    Global $Label1 = GUICtrlCreateLabel("1. Downloadlink angeben", 112, 8, 125, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetCursor(-1, 0)
    Global $Label2 = GUICtrlCreateLabel("2. Zielverzeichnis", 112, 32, 86, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetCursor(-1, 0)
    Global $Input1 = GUICtrlCreateInput(@DesktopDir, 112, 56, 233, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    Global $Button2 = GUICtrlCreateButton("Hinzufügen", 112, 88, 75, 25, $WS_GROUP)
    GUICtrlSetState(-1, $GUI_DISABLE)
    Global $Button3 = GUICtrlCreateButton("Starten", 368, 160, 75, 25, $WS_GROUP)
    Global $Label3 = GUICtrlCreateLabel("Fenster verstecken", 112, 168, 95, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetCursor(-1, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Global $Input2 = GUICtrlCreateInput("", 8, 200, 569, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    Global $Group3 = GUICtrlCreateGroup("", -8, 48, 105, 145)
    Global $Button4 = GUICtrlCreateButton("Beenden", 8, 64, 75, 25, $WS_GROUP)
    Global $Button5 = GUICtrlCreateButton("Über", 8, 160, 75, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $Count = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Label1
    _Info()
    Global $DL = InputBox("Downloadlink", "Bitte gebe den vollständigen Downloadlink an!", "http://", "", 60, 140)
    If @error Then
    MsgBox(0, "Abgebrochen", "Du hast die Link Eingabe abgebrochen!")
    EndIf
    GUICtrlSetState($Button2, $GUI_ENABLE)
    Case $Label2
    Global $ZV = FileSelectFolder("Bitte wähle das Zielverzeichnis aus!", "")
    If @error Then
    MsgBox(16, "Fehler", "Sie haben kein Verzeichnis ausgewählt!" & @CRLF & "Standartzielverzeichnis: Desktop")
    GUICtrlSetData($Input1, @DesktopDir)
    Else
    GUICtrlSetData($Input1, $ZV)
    EndIf
    Case $Button1
    _Info()
    Case $Label3
    GUISetState(@SW_HIDE)
    Case $Button4
    Exit
    Case $Button5
    _InfoHersteller()
    Case $Button2
    _InTheList()
    Case $Button3
    _Download()

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

    EndSwitch
    WEnd

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

    Func _Info()
    MsgBox(64, "Info", "Du musst einiges beachten bei der Link Auswahl:" & @CRLF & "Du darfst nicht den Link in der Address Leiste nehmen!" & @CRLF & @CRLF & "Klick auf den Download-Button rechts, geh auf Eigentschaften und da steht die URL" & @CRLF & "die kopierst du und fügst sie dann ein!")
    EndFunc ;==>_Info

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

    Func _InfoHersteller()
    MsgBox(64, "Info", "© Copyright 2009 by Understood")
    EndFunc ;==>_InfoHersteller

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

    Func _Status($s_State)
    Sleep(75)
    GUICtrlSetData($Input2, $s_State)
    EndFunc ;==>_Status

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

    Func _InTheList()
    If _IsURL($DL) Then
    GUICtrlSetData($List1, $DL)
    GUICtrlSetState($Button2, $GUI_DISABLE)
    Else
    MsgBox(0, "URL", "Die URL ist wohl falsch geschrieben!")
    _Status("URL ist wahrscheinlich falsch geschrieben!")
    Return 0
    EndIf
    _Status("Downloadlink wurde eingefügt!")
    EndFunc ;==>_InTheList

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

    Func _IsURL($s_URL)
    If StringInStr($s_URL, "http") Or StringInStr($s_URL, ".") Or StringInStr($s_URL, "www") Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>_IsURL

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

    Func _Download()
    _GUICtrlListBox_BeginUpdate($List1)
    Local $i_DownloadItems[_GUICtrlListBox_GetCount($List1)]
    For $i = 0 To UBound($i_DownloadItems) - 1
    $i_DownloadItems[$i] = _GUICtrlListBox_GetText($List1, $i)
    TrayTip("Download", "Fängt an mit Download:" & @CRLF & $i_DownloadItems[$i], 2)
    InetGet($i_DownloadItems[$i], GUICtrlRead($Input1) & "\Download Nr. " & $i & StringRight($i_DownloadItems[$i], 4))
    Next
    _GUICtrlListBox_EndUpdate($List1)
    EndFunc

    [/autoit]
  • sieht echt schick aus ^^

    wenn es weiter ausgereift ist wird das noch richtig Wertvoll =)

    Also an dich kann ich nur sagen NICE

  • Überwache doch die zwischenablage .. und geh mit einem regex durch der nach links sucht ....
    ( die meisten kopieren die links von an nach b )
    Sind die in der zwischenablage kann er sie doch extra anzeigen und bei bedarf hinzufügen
    Nur so als anmerkung

  • Meinst du so?

    [autoit]

    Case $Label1
    _Info()
    Global $s_Clipboard = ClipGet()
    Global $DL = InputBox("Downloadlink", "Bitte gebe den vollständigen Downloadlink an!", $s_Clipboard, "", 280, 140)
    If @error Then
    MsgBox(0, "Abgebrochen", "Du hast die Link Eingabe abgebrochen!")
    EndIf
    GUICtrlSetState($Button2, $GUI_ENABLE)

    [/autoit]
  • Nicht schlecht. Wie wäre es denn mit einem Verlauf?
    Außerdem nimm mal die info weg vom Anfang und mach das lieber noch anders. Das nervt nämlich.

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • Hi Understood

    sieht schon ganz toll aus
    du könntest ja noch eine progressbar machen mit dem status des downloads

    gruss Simon

  • [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Data\Download-Icon.ico
    #AutoIt3Wrapper_outfile=Downloader.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    #cs
    Testdownloadlinks.
    Deutsche Hilfe, 3 Versionen zum downloaden und testen:
    http://translation.autoit.de/autoitinfo/hil…nd-10_07_09.zip
    http://translation.autoit.de/autoitinfo/hil…nd-21_03_09.zip
    http://translation.autoit.de/autoitinfo/hil…nd-01_01_09.zip
    #ce

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

    MsgBox(64, "Info", "Du musst einiges beachten bei der Link Auswahl:" & @CRLF & "Du darfst nicht den Link in der Address Leiste nehmen!" & @CRLF & @CRLF & "Klick auf den Download-Button rechts, geh auf Eigentschaften und da steht die URL" & @CRLF & "die kopierst du in die Zwischenablage!" & @CRLF & "Wenn du dann die Url in der Zwischenablage hast gehst du auf Downloadlink wählen und er fügt die Url ganz normal ein!")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Downloader", 635, 225, 192, 124, -1, $WS_EX_TOPMOST)
    GUISetBkColor(0x000000)
    $Group1 = GUICtrlCreateGroup("", 0, -8, 113, 177)
    $Icon1 = GUICtrlCreateIcon(@Scriptdir & "\Data\ask.ico", -1, 24, 8, 64, 64, BitOR($SS_NOTIFY,$WS_GROUP))
    $Button1 = GUICtrlCreateButton("Ende", 24, 112, 67, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Input1 = GUICtrlCreateInput("", 0, 176, 633, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlSetBkColor(-1, 0xFFFFFFF)
    $Group2 = GUICtrlCreateGroup("", 120, -8, 505, 177)
    $Label1 = GUICtrlCreateLabel("Zielverzeichnis wählen", 128, 112, 111, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    $Input2 = GUICtrlCreateInput(@DesktopDir, 128, 136, 233, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlSetBkColor(-1, 0xFFFFFFF)
    $Label2 = GUICtrlCreateLabel("Downloadlink wählen", 128, 8, 105, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    $Input3 = GUICtrlCreateInput("", 128, 32, 233, 21, $ES_AUTOHSCROLL)
    $List1 = GUICtrlCreateList("", 376, 8, 241, 149)
    $Icon2 = GUICtrlCreateIcon(@Scriptdir & "\Data\Download.ico", -1, 312, 72, 48, 48, BitOR($SS_NOTIFY,$WS_GROUP))
    $Button2 = GUICtrlCreateButton("Hinzufügen", 128, 64, 75, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Progress1 = GUICtrlCreateProgress(0, 200, 633, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    _Status("Downloader ist bereit...")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Label2
    $s_DL = ClipGet()
    If $s_DL = "" Then
    MsgBox(16, "Error", "Nichts in der Zwischenablage!")
    Else
    GUICtrlSetData($Input3, $s_DL)
    EndIf
    Case $Label1
    Global $ZV = FileSelectFolder("Bitte wähle das Zielverzeichnis aus!", "")
    If @error Then
    MsgBox(16, "Fehler", "Sie haben kein Verzeichnis ausgewählt!" & @CRLF & "Standartzielverzeichnis: Desktop")
    GUICtrlSetData($Input2, @DesktopDir)
    Else
    _Status($ZV)
    GUICtrlSetData($Input2, $ZV)
    EndIf
    Case $Icon1
    MsgBox(0, "©", "© Copyright 2009 bei Understood!")
    Case $Button1
    Exit
    Case $Button2
    _InTheList()
    Case $Icon2
    _Download()

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

    EndSwitch
    WEnd

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

    Func _InTheList()
    $DL = GUICtrlRead($Input3)
    If _IsURL($DL) Then
    GUICtrlSetData($List1, $DL)
    ;~ GUICtrlSetState($Button2, $GUI_DISABLE)
    Else
    MsgBox(0, "URL", "Die URL ist wohl falsch geschrieben!")
    _Status("URL ist wahrscheinlich falsch geschrieben!")
    Return 0
    EndIf
    GUICtrlSetData($Input3, "")
    _Status("Downloadlink wurde eingefügt!")
    EndFunc ;==>_InTheList

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

    Func _Status($s_Text)
    Sleep(10)
    GUICtrlSetData($Input1, $s_Text)
    EndFunc

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

    Func _IsURL($s_URL)
    If StringInStr($s_URL, "http") Or StringInStr($s_URL, ".") Or StringInStr($s_URL, "www") Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>_IsURL

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

    Func _Download()
    _Status("Beginne mit Download...")
    _GUICtrlListBox_BeginUpdate($List1)
    Global $i_DownloadItems[_GUICtrlListBox_GetCount($List1)]
    For $i = 0 To UBound($i_DownloadItems) - 1
    $i_DownloadItems[$i] = _GUICtrlListBox_GetText($List1, $i)
    $iNet_MaxBytes = InetGetSize($i_DownloadItems[$i])
    TrayTip("Download", "Fängt an mit Download:" & @CRLF & $i_DownloadItems[$i], 2)
    _Status("Download: " & $i_DownloadItems[$i])
    ;~ InetGet($i_DownloadItems[$i], GUICtrlRead($Input2) & "\Download Nr. " & $i & StringRight($i_DownloadItems[$i], 4)
    ;~ InetGet($i_DownloadItems[$i], _FileName(StringRight($i_DownloadItems[$i])), 4)
    $sFileName = _FileName($i_DownloadItems[$i])
    If $sFileName = 0 Then
    Return 0
    EndIf
    InetGet($i_DownloadItems[$i], $sFileName, 4)
    Do
    $iNet_ReadBytes = @InetGetBytesRead
    $iNet_ProSatz = Round($iNet_ReadBytes / $iNet_MaxBytes * 100)
    GUICtrlSetData($Progress1, $iNet_ProSatz)
    Until $iNet_ProSatz >= 100
    Next
    _GUICtrlListBox_EndUpdate($List1)
    _Status("Fertig")
    EndFunc

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

    Func _FileName($sPath)
    ;~ Local $pDirectory = @ScriptDir & "\Download Nr[0]" & $sExtension
    Local $pDirectory_1 = StringSplit($sPath, "/")
    Local $pDirectory = @ScriptDir & "\"

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

    If IsArray($pDirectory_1) Then
    $pDirectory &= $pDirectory_1[UBound($pDirectory_1) -1]
    EndIf

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

    If FileExists($pDirectory) Then
    ;~ Do
    ;~ $fFiles += 1
    ;~ $pDirectory = StringReplace($pDirectory, "[" & ($fFiles - 1) & "]", "[" & $fFiles & "]")
    ;~ Until Not FileExists($pDirectory)
    TrayTip("Existiert schon", "Datei mit dem Namen existiert schon!", 3)
    Return 0
    EndIf

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

    Return $pDirectory
    EndFunc

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

    Einfach das Script im Ordner durch dieses ersetzen! :)

  • Verwende bei langen Scripts bitte

    Code
    [spoiler][autoit][/autoit][/spoiler]


    MfG tobi_girst

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)