DownSync - Download Manager - v.0.3

  • Hi Community,

    mein neues Programm heißt DownSync. Es ist ein Download-Manager mit dem ihr Dateien herunterladen und anschließend verwalten könnt.

    Neu* - Video über die Funktionalitäten

    Funktionen:

    • Download hinzufügen - 100 %

    • Download löschen - 100 %
    • Download Ordner öffnen - 100 %
    • Verlauf - 100 %
    • Downloads durchsuchen - 10 %
    • Einstellungen - 100% (erweiterbar)
    • Informationen - 100 %

    Special-Features: Version > 0.2

    • Youtube-Videos downloaden - 30 %
    • Zwischenablagen-Tracker - 10 %
    • Download-Listen - 100 % (Vergl. mit Download-Planer)

    Infos:

    • zu den Download-Listen: Ihr könnt Listen mit Links/ Urls zu Dateien im Internet erstellen und diese anschließend speichern. Diese Listen können auch im Internet veröffentlicht werden. Der Benutzer erhält dann einen Code - wie z.B. "x2jkb09". Unter diesem Code können andere User die Liste herunterladen. Achtung! Imoment funktioniert es noch nicht die Dateien einer Liste anschließend direkt durch einen Klick zu downloaden. Ich hatte dabei noch Probleme und benötige noch etwas Zeit.


    Screenshot - Version 0.2:

    Spoiler anzeigen

    Download:
    Neuste Version: 0.3 > DownSync_v0.3.zip

    Ältere Version: 0.2 > DownSync_v0.2.zip

    Kritik, Wünsche oder Feedback, wie immer gerne. :thumbup:

    10 Mal editiert, zuletzt von Jautois (25. Februar 2010 um 22:35)

  • Schaut sehr gut aus.

    Bin gespannt wie es damit weiter geht.

    Download habe ich gleich auf Quelltext & Viren geprüft. Jungs? Die Datei ist sauber und *.au3 & Co. incl. Danke !

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Ziemlich viel Code für nen DLM.
    Übrigens, folgende Includes kannste weg machen.

    Code
    Array.au3TreeViewConstants.au3ImageListConstants.au3GUIImageList.au3


    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Zitat

    Ziemlich viel Code für nen DLM.

    Finde ich eigentlich nicht. Der eigentliche Manager hat nur ~570 Zeilen und dann kommen ~200 Zeilen ListViewProgressbar hinzu.

    Danke für den Hinweise zu den Includes!

  • Habe zwei Bugs entdeckt und diese bereits behoben.

    Bugs:

    • 22:05 | 25.02.2010 - Fixed Bug: MY_Command reagiert bei "Download hinzufügen" nicht
    • 22:20 | 25.02.2010 - Fixed Bug: Generiert falschen Download-Listen-Code


    Das neue Script kommt bald mit Version 0.4 ;)

  • Hat zufälligerweise jemand noch den Code für das Programm auf seinem Rechner?

    Ich habe es nach einem Festplattencrash verloren, würde aber dennoch jetzt nochmal etwas daran weiterarbeiten.

  • Hallo Jautois,

    ja hier:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GuiImageList.au3>
    #include <GuiStatusBar.au3>
    #include <ImageListConstants.au3>
    #include <ListViewConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiButton.au3>
    #include <GuiListView.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <ComboConstants.au3>
    #include <File.au3>
    #include <Misc.au3>
    #include <Constants.au3>
    #include <ProgressConstants.au3>
    #include <HeaderConstants.au3>
    #include <WinAPI.au3>

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

    Opt('GUIOnEventMode', 1)

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

    If Not _CheckInet() Then
    MsgBox(16, "Error", "Es besteht keine Verbindung zum Internet!")
    Exit
    EndIf

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

    Global Const $DLM_Name = "DownSync"
    Global Const $DLM_Version = "0.2"
    Global Const $DLM_Author = "Johannes K."
    Global Const $DLM_Title = $DLM_Name & " v." & $DLM_Version
    Global Const $DLM_ServerUrl = "johannes-log.de"
    Global Const $DLM_FilePathOnServer = "http://" & $DLM_ServerUrl & "/" & $DLM_Name & "/version/"
    Global Const $DLM_DataTextPathOnServer = "http://" & $DLM_ServerUrl & "/" & $DLM_Name & "/data.txt"
    Global Const $DLM_Icon_Path = @ScriptDir & "\icon.dll"
    Global Const $DLM_HistoryFile = @ScriptDir & "\history.ini"
    Global Const $DLM_SystemFile = @ScriptDir & "\system.ini"
    Global $DLM_ListView_LastIndexX = -1

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

    Global $pListView_Up, $hWindow_Update
    Global $sOutputLog = ""
    Global $sFileSavePath = ""
    Global $hProgress[100]
    Global $ListViewItem[100]
    Global $aActions[4][2] = [["Download-Ordner öffnen", 1],["Herunterfahren", 2],["Standby", 3],["Nichts", 4]]

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

    Global Const $SW_HIDE = 0
    Global Const $SW_SHOW = 5

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

    Global $aProgress[1][4]

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

    GUIRegisterMsg($WM_NOTIFY, "_ListView_Notify")
    GUIRegisterMsg($WM_SIZE, "_ListView_Notify")

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

    If _Singleton($DLM_Name, 0) = 0 Then
    MsgBox(16, "Error", "Eine Instanz des Skripts wird bereits ausgeführt!")
    Exit
    EndIf

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

    ;- Main Gui
    $hWindo_Main = GUICreate($DLM_Title, 634, 563)
    GUISetOnEvent(-3, "_Exit")
    GUISetIcon($DLM_Icon_Path, 4)
    $ListView = GUICtrlCreateListView("Dateiname|Größe|Geschwindigkeit|Fortschritt|Zeit", 8, 56, 617, 353, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 200)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 110)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 102)
    Global $pEdit_Log = GUICtrlCreateEdit("", 8, 416, 617, 113, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL))
    GUICtrlSetBkColor(-1, 0xA0A0A4)
    $StatusBar = _GUICtrlStatusBar_Create($hWindo_Main)
    _GUICtrlStatusBar_SetMinHeight($StatusBar, 25)
    GUICtrlCreateButton("", 8, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    GUICtrlSetOnEvent(-1, "_ShowAddDl")
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 1, True)
    GUICtrlCreateButton("", 56, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 2, True)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateButton("", 488, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 11, True)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateButton("", 440, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 9, True)
    GUICtrlSetOnEvent(-1, "_ShowHistory")
    GUICtrlCreateButton("", 104, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    GUICtrlSetState(-1, $GUI_DISABLE)
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 5, True)
    GUICtrlCreateButton("", 584, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 13, True)
    GUICtrlSetOnEvent(-1, "_ShowInfo")
    GUICtrlCreateButton("", 536, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 12, True)
    GUICtrlSetOnEvent(-1, "_ShowSettings")
    GUICtrlCreateButton("", 392, 8, 41, 41, BitOR($BS_ICON, $WS_GROUP))
    _GUICtrlButton_SetImage(-1, $DLM_Icon_Path, 3, True)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    ;- Download hinzufügen
    $hWindow_AddDl = GUICreate("Download hinzufügen", 409, 322)
    GUISetOnEvent(-3, "_ExitDL")
    GUIRegisterMsg($WM_COMMAND, "MY_COMMAND")
    GUISetIcon($DLM_Icon_Path, 4)
    $pInput_AddDL_Url = GUICtrlCreateInput("", 110, 21, 273, 21)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("__________________________________________________________________________", 16, 104, 378, 17)
    $pLabel_AddDL_FileSize = GUICtrlCreateLabel("Größe:", 64, 72, 200, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateIcon($DLM_Icon_Path, 6, 16, 16, 33, 33, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlSetTip(-1, " ", "Die Url zur Datei, die heruntergeladen werden soll.", 1)
    GUICtrlCreateIcon($DLM_Icon_Path, 8, 16, 64, 33, 33, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlSetTip(-1, " ", "Die Größe der Datei", 1)
    GUICtrlCreateIcon($DLM_Icon_Path, 10, 16, 136, 33, 33, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlSetTip(-1, " ", "Unter diesem Namen wird die Datei auf dem Pc gespeichert.", 1)
    $pInput_AddDL_NewFileName = GUICtrlCreateInput("", 134, 141, 249, 21)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateIcon($DLM_Icon_Path, 0, 16, 184, 33, 33, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlSetTip(-1, " ", "Die Datei wird in dieses Verzeichnis gedownloadet.", 1)
    $pInput_AddDL_FilePath = GUICtrlCreateInput("", 110, 189, 225, 21)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $pButton_AddDL_SearchPath = GUICtrlCreateButton("...", 344, 187, 41, 24, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_SelectFilePath")
    $pButton_AddDL_Download = GUICtrlCreateButton("Download", 64, 280, 185, 33, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_AddDownload")
    $pButton_AddDl_Exit = GUICtrlCreateButton("Abbruch", 256, 280, 129, 33, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_ExitDl")
    GUICtrlCreateLabel("Url:", 80, 24, 24, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Dateiname:", 64, 144, 68, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateIcon($DLM_Icon_Path, 7, 16, 232, 33, 33, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlSetTip(-1, " ", "Noch freier Speicherplatz auf der Festplatte", 1)
    $pLabel_AddDL_DataSize = GUICtrlCreateLabel("Datenträger:", 64, 240, 400, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Ziel:", 80, 192, 29, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_HIDE, $hWindow_AddDl)

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

    ;- Verlauf
    $hWindow_History = GUICreate("Verlauf", 506, 370)
    GUISetOnEvent(-3, "_ExitHistory")
    GUISetIcon($DLM_Icon_Path, 9)
    $pListView_History = GUICtrlCreateListView("Datum|Uhrzeit|Dateiname|Größe", 0, 0, 505, 353)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 220)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 100)
    $pButton_ClearHistory = GUICtrlCreateButton("Leeren", 0, 352, 506, 19, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_ClearHistory")
    GUISetState(@SW_HIDE, $hWindow_History)

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

    ;- Einstellungen
    $hWindow_Settings = GUICreate("Einstellungen", 419, 162)
    GUISetOnEvent(-3, "_ExitSet")
    GUISetIcon($DLM_Icon_Path, 12)
    $pIconDLF = GUICtrlCreateIcon($DLM_Icon_Path, 5, 16, 16, 32, 32, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlSetTip($pIconDLF, " ", "Der standardmäßig verwendete Download-Ordner.", 1)
    GUICtrlCreateLabel("Download-Ordner:", 56, 24, 106, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $bFR = False
    If Not FileExists($DLM_SystemFile) Then
    IniWrite($DLM_SystemFile, "Einstellungen", "Download-Ordner", @DesktopDir)
    IniWrite($DLM_SystemFile, "Einstellungen", "AfterDLActionID", 4)
    $bFR = True
    EndIf
    $aRead = IniReadSection($DLM_SystemFile, "Einstellungen")
    If @error Then
    MsgBox(64, "Error", "Es ist ein Fehler aufgetreten. Fehlercode: 0x" & @ScriptLineNumber & "-" & @error)
    EndIf
    $pInput_DownloadFolder = GUICtrlCreateInput($aRead[1][1], 168, 21, 185, 21)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $pButton_SelectFolder = GUICtrlCreateButton("...", 360, 21, 49, 21, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_SelectDLFolder")
    $pIconADL = GUICtrlCreateIcon($DLM_Icon_Path, 8, 16, 72, 32, 32, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlSetTip($pIconADL, " ", "Welche Aktion soll nach einem fertigen Download ausgeführt werden?", 1)
    GUICtrlCreateLabel("Download abgeschlossen, dann:", 56, 80, 188, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $pActionCombo = GUICtrlCreateCombo($aActions[$aRead[2][1] - 1][0], 248, 77, 161, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
    $sActions = ""
    For $i = 1 To UBound($aActions)
    If $aActions[$aRead[2][1] - 1][1] <> $i Then $sActions &= $aActions[$i - 1][0] & "|"
    Next
    GUICtrlSetData(-1, $sActions)
    $pButton_SaveSet = GUICtrlCreateButton("Speichern", 56, 120, 161, 33, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_SaveSettings")
    GUISetState(@SW_HIDE, $hWindow_Settings)

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

    ;- Informationen
    $hWindow_Info = GUICreate("Informationen", 378, 370)
    GUISetOnEvent(-3, "_ExitInfo")
    GUISetIcon($DLM_Icon_Path, 13)
    GUICtrlCreateIcon($DLM_Icon_Path, 13, 16, 16, 96, 96, BitOR($SS_NOTIFY, $WS_GROUP))
    GUICtrlCreateLabel("Name:", 128, 24, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Version:", 128, 48, 50, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Author:", 128, 72, 45, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel($DLM_Name, 184, 24, 64, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlCreateLabel($DLM_Version, 184, 48, 22, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlCreateLabel($DLM_Author, 184, 72, 74, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlCreateGroup("Lizenz GPLv3", 8, 120, 361, 193)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateEdit(FileRead(@ScriptDir & "\license.txt"), 24, 144, 329, 153, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_VSCROLL))
    GUICtrlSetBkColor(-1, 0xC8C8C8)
    $pButton_LoadSource = GUICtrlCreateButton("Source-Code laden", 8, 320, 161, 41, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_LoadSourceCode")
    $pButton_CheckForUpdates = GUICtrlCreateButton("Auf Updates prüfen", 176, 320, 193, 41, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_CheckForUpdates")
    GUICtrlCreateLabel("Bugs?:", 128, 96, 43, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("autoit.report@web.de", 184, 96, 126, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    If Not $bFR Then
    GUISetState(@SW_HIDE, $hWindow_Info)
    Else
    GUISetState(@SW_SHOW, $hWindow_Info)
    EndIf

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

    _AddLog("Programm gestartet!")

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

    While 1
    Sleep(2000)
    WEnd

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

    Func _AddDownload()
    Local $aCurData
    Local $sFunc_URL = GUICtrlRead($pInput_AddDL_Url)
    Local $sFunc_FilePath = GUICtrlRead($pInput_AddDL_FilePath)
    Local $sFunc_FileName = GUICtrlRead($pInput_AddDL_NewFileName)

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

    If $sFunc_URL <> "" And StringLeft($sFunc_URL, 7) = "http://" Then
    If $sFunc_FileName <> "" Then
    If $sFunc_FilePath <> "" Then
    $aCurData = _GetFileInfo($sFunc_URL)
    If IsArray($aCurData) Then
    GUISetState(@SW_HIDE, $hWindow_AddDl)
    GUISetState(@SW_SHOW, $hWindo_Main)
    $iFileSize = _FormatFileSize(InetGetSize($sFunc_URL))
    GUICtrlSetData($pLabel_AddDL_FileSize, "Größe: " & $iFileSize)
    _AddLog("Dowload von " & $aCurData[0] & " startet!")
    $DLM_ListView_LastIndexX += 1
    $ListViewItem[$DLM_ListView_LastIndexX] = GUICtrlCreateListViewItem($aCurData[0] & "|" & $iFileSize & "|0 KB/s|0 %|0 Sek.", $ListView)
    $hProgress[$DLM_ListView_LastIndexX] = _ListView_InsertProgressBar($ListView, $DLM_ListView_LastIndexX, 3)
    $hDownload = InetGet($sFunc_URL, $sFunc_FilePath & "\" & $aCurData[0], 1, 1)
    Do
    Sleep(10)
    Until InetGetInfo($hDownload, 0) Or InetGetInfo($hDownload, 2)
    $hDateiGroese = InetGetInfo($hDownload, 1)
    If Not $hDateiGroese And Not InetGetInfo($hDownload, 2) Then $hDateiGroese = InetGetSize($sFunc_URL)
    $iDLTimer = TimerInit()
    $iMaxSpeed = 0
    Do
    Sleep(100)
    _Progress_SetPos($hProgress[$DLM_ListView_LastIndexX], (InetGetInfo($hDownload, 0) / $hDateiGroese) * 100)
    $iSpeed = Round(InetGetInfo($hDownload, 0) / (TimerDiff($iDLTimer)), 2)
    _GUICtrlListView_SetItem($ListView, $iSpeed & " KB/s", $DLM_ListView_LastIndexX, 2)
    If $iSpeed > $iMaxSpeed Then $iMaxSpeed = $iSpeed
    _GUICtrlListView_SetItem($ListView, Round(TimerDiff($iDLTimer) / 1000, 1) & " Sek.", $DLM_ListView_LastIndexX, 4)
    Until InetGetInfo($hDownload, 2)
    Local $aInfo = InetGetInfo($hDownload)
    _AddLog("Maximale Geschwindigkeit: " & $iSpeed & " KB/s")
    _AddLog("Download wurde erfolgreich abgeschlossen!")
    _Progress_SetPos($hProgress[$DLM_ListView_LastIndexX], 100)
    InetClose($hDownload)
    $aIniRead = IniReadSection($DLM_HistoryFile, "Downloads")
    If IsArray($aIniRead) Then
    If UBound($aIniRead) = 1 Then
    $iLastID = 0
    Else
    $iLastID = UBound($aIniRead) - 1
    EndIf
    Else
    $iLastID = 0
    EndIf
    IniWrite($DLM_HistoryFile, "Downloads", $iLastID, @MDAY & "." & @MON & "." & @YEAR & "|" & @HOUR & ":" & @MIN & "|" & $aCurData[0] & "|" & $iFileSize)
    _AddLog($aCurData[0] & " im Verlauf hinzugefügt!")
    WinFlash($DLM_Title, Default, 2)

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

    $iActID = IniRead($DLM_SystemFile, "Einstellungen", "AfterDLActionID", -1)
    If $iActID <> -1 Then
    Switch $iActID
    Case 1 ;Download-Ordner öffnen
    ShellExecute(IniRead($DLM_SystemFile, "Einstellungen", "Download-Ordner", @DesktopDir))
    Case 2 ;Herunterfahren
    Shutdown(1)
    Case 3;Standby
    Shutdown(32)
    Case 4;Nichts
    ;->
    EndSwitch
    EndIf
    Else
    _AddLog("Download kann nicht starten! Fehler: 0x" & @ScriptLineNumber)
    EndIf
    Else
    MsgBox(16, "Error", "Dateipfad fehlt!")
    EndIf
    Else
    MsgBox(16, "Error", "Dateiname fehlt!")
    EndIf
    Else
    MsgBox(16, "Error", "Download-Url fehlt oder beginnt nicht mit http://")
    EndIf
    EndFunc ;==>_AddDownload

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

    Func _GetFileInfo($sFunc_URL = "")
    Local $aData[2]
    Local $aRawData_F = StringSplit($sFunc_URL, "/")
    If IsArray($aRawData_F) Then
    $aRawData_S = StringSplit($aRawData_F[UBound($aRawData_F) - 1], ".")
    If IsArray($aRawData_S) Then
    $aData[0] = $aRawData_F[UBound($aRawData_F) - 1]
    $aData[1] = $aRawData_S[UBound($aRawData_S) - 1]
    Return $aData
    Else
    Return 0
    EndIf
    Else
    Return 0
    EndIf
    EndFunc ;==>_GetFileInfo

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

    Func _AddLog($sFunc_String = "")
    Local $sCurTag = "[ " & @HOUR & ":" & @MIN & ":" & @SEC & " ] - " & $sFunc_String & @CRLF
    $sOutputLog &= $sCurTag
    GUICtrlSetData($pEdit_Log, $sOutputLog)
    FileWrite(@ScriptDir & "\log.txt", $sCurTag)
    EndFunc ;==>_AddLog

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

    ;- OnEvent Funktionen
    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Func _ExitDL()
    GUISetState(@SW_HIDE, $hWindow_AddDl)
    GUICtrlSetData($pInput_AddDL_Url, "")
    GUICtrlSetData($pInput_AddDL_NewFileName, "")
    EndFunc ;==>_ExitDL

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

    Func _ExitHistory()
    GUISetState(@SW_HIDE, $hWindow_History)
    EndFunc ;==>_ExitHistory

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

    Func _ExitInfo()
    GUISetState(@SW_HIDE, $hWindow_Info)
    EndFunc ;==>_ExitInfo

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

    Func _ExitSet()
    GUISetState(@SW_HIDE, $hWindow_Settings)
    EndFunc ;==>_ExitSet

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

    Func _ExitUpdate()
    GUISetState(@SW_HIDE, $hWindow_Update)
    EndFunc ;==>_ExitUpdate

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

    Func _SelectDLFolder()
    $sFileSavePath = FileSelectFolder("Download-Ordner wählen ...", @HomeDrive, 7)
    If Not @error Then
    GUICtrlSetData($pInput_DownloadFolder, $sFileSavePath)
    Else
    GUICtrlSetData($pInput_DownloadFolder, "")
    EndIf
    EndFunc ;==>_SelectDLFolder

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

    Func _CheckInet()
    $iPing = Ping("www.google.de")
    If $iPing Then
    Return True
    Else
    Return False
    EndIf
    EndFunc ;==>_CheckInet

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

    Func _SelectFilePath()
    $sFileSavePath = FileSelectFolder("Datei herunterladen nach ...", @HomeDrive, 7)
    If Not @error Then
    GUICtrlSetData($pInput_AddDL_FilePath, $sFileSavePath)
    Else
    GUICtrlSetData($pInput_AddDL_FilePath, "<Dateipfad>")
    EndIf
    EndFunc ;==>_SelectFilePath

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

    Func _LoadSourceCode()
    $sFileName = "SourceCode_" & $DLM_Name & "_" & $DLM_Version & ".au3"
    $sCurUrl = "http://" & $DLM_ServerUrl & "/" & $DLM_Name & "/version/" & $sFileName
    GUICtrlSetData($pInput_AddDL_Url, $sCurUrl)
    GUICtrlSetData($pLabel_AddDL_FileSize, "Größe: " & _FormatFileSize(InetGetSize($sCurUrl)))
    GUICtrlSetData($pInput_AddDL_NewFileName, $sFileName)
    GUISetState(@SW_SHOW, $hWindow_AddDl)
    EndFunc ;==>_LoadSourceCode

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

    Func _UpdateDownload()
    $iTempIndex = _GUICtrlListView_GetSelectedIndices($pListView_Up, True)
    $sSelectedVer = _GUICtrlListView_GetItemText($pListView_Up, $iTempIndex[1])
    GUICtrlSetData($pInput_AddDL_Url, "http://johannes-log.de/" & $DLM_Name & "/version/" & $sSelectedVer)
    GUICtrlSetData($pInput_AddDL_NewFileName, $sSelectedVer)
    GUISetState(@SW_HIDE, $hWindow_Update)
    GUISetState(@SW_SHOW, $hWindow_AddDl)
    EndFunc ;==>_UpdateDownload

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

    Func _CheckForUpdates()
    Local $sSysIconP = @SystemDir & "\shell32.dll"
    $hWindow_Update = GUICreate($DLM_Name & " Updater", 472, 330)
    GUISetOnEvent(-3, "_ExitUpdate")
    GUISetBkColor(0xBFCDDB)
    GUISetIcon($sSysIconP, -14)
    $pDlProgress = GUICtrlCreateProgress(72, 24, 390, 25)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $pInternetIcon = GUICtrlCreateIcon($sSysIconP, -136, 20, 20)
    $pInternetErrorIcon = GUICtrlCreateIcon($sSysIconP, -220, 20, 20)
    GUICtrlSetState($pInternetErrorIcon, $GUI_HIDE)
    $pArrIcon = GUICtrlCreateIcon($sSysIconP, -268, 74, 50)
    $pListView_Up = GUICtrlCreateListView("Dateiname|Version|Größe|Autor", 8, 80, 455, 201)
    GUICtrlSendMsg(-1, 0x101E, 0, 150)
    GUICtrlSendMsg(-1, 0x101E, 1, 100)
    GUICtrlSendMsg(-1, 0x101E, 2, 100)
    GUICtrlSendMsg(-1, 0x101E, 3, 100)
    $pButtonDl = GUICtrlCreateButton("Download", 334, 288, 129, 33, 0)
    GUICtrlSetOnEvent(-1, "_UpdateDownload")
    $pLabelInfo = GUICtrlCreateLabel("", 100, 60, 340, 17)
    GUISetState(@SW_SHOW, $hWindow_Update)

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

    Ping("www.google.de")
    If @error Then
    GUICtrlSetState($pInternetErrorIcon, $GUI_SHOW)
    GUICtrlSetData($pLabelInfo, "Keine Internetverbindung!")
    SetError(-2)
    Else
    Ping($DLM_ServerUrl)
    If @error Then
    GUICtrlSetState($pInternetErrorIcon, $GUI_SHOW)
    GUICtrlSetData($pLabelInfo, "Server nicht erreichbar!")
    SetError(-1)
    Else
    GUISetState(@SW_HIDE, $hWindow_Info)
    Local $sTempData, $iPercent = 0
    InetGet($DLM_DataTextPathOnServer, @TempDir & "\data.txt", 1)
    _FileReadToArray(@TempDir & "\data.txt", $sTempData)
    GUICtrlSetData($pLabelInfo, "Informationen werden heruntergeladen ...")
    Local $iDataFileSize[$sTempData[0] + 1], $bNew = False
    For $i = 1 To $sTempData[0]
    $iPercent = $iPercent + (100 / $sTempData[0])
    $sTempDataForRow = StringSplit($sTempData[$i], ",")
    If Int(StringRight($sTempDataForRow[2], 1)) > Int(StringRight($DLM_Version, 1)) Then $bNew = True
    $iDataFileSize[$i] = Round(InetGetSize($DLM_FilePathOnServer & $sTempDataForRow[1]) / 1000)
    $ListView_ItemUp = GUICtrlCreateListViewItem($sTempDataForRow[1] & "|" & $sTempDataForRow[2] & "|" & $iDataFileSize[$i] & " KB|" & $sTempDataForRow[3], $pListView_Up)
    GUICtrlSetData($pDlProgress, $iPercent)
    Next
    $iPercent = 0
    GUICtrlSetData($pDlProgress, $iPercent)
    GUICtrlSetData($pLabelInfo, "Informationen heruntergeladen!")
    If $bNew Then MsgBox(64, "Info", "Es ist eine neue Version verfügbar!")
    EndIf
    EndIf
    EndFunc ;==>_CheckForUpdates

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

    Func _ClearHistory()
    If Not FileExists($DLM_HistoryFile) Then
    MsgBox(4096, "Error", "Der Verlauf kann nicht geöffnet werden, da keine Verlaufsdatei vorhanden ist!")
    Else
    If Not FileDelete($DLM_HistoryFile) = 1 Then
    MsgBox(4096, "Error", "Die Verlaufsdatei kann nicht gelöscht werden!")
    Else
    _GUICtrlListView_DeleteAllItems($pListView_History)
    If Not _FileCreate($DLM_HistoryFile) Then
    MsgBox(4096, "Fehler", "Fehler beim Erstellen der Verlaufsdatei!")
    Else
    IniWrite($DLM_HistoryFile, "Downloads", "%", "%%%")
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_ClearHistory

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

    Func _SaveSettings()
    IniWrite($DLM_SystemFile, "Einstellungen", "Download-Ordner", GUICtrlRead($pInput_DownloadFolder))
    $iAction = GUICtrlRead($pActionCombo)
    For $i = 1 To UBound($aActions)
    If $aActions[$i - 1][0] == $iAction Then $iAction = $i
    Next
    IniWrite($DLM_SystemFile, "Einstellungen", "AfterDLActionID", $iAction)
    GUISetState(@SW_HIDE, $hWindow_Settings)
    EndFunc ;==>_SaveSettings

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

    Func _ShowInfo()
    GUISetState(@SW_SHOW, $hWindow_Info)
    EndFunc ;==>_ShowInfo

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

    Func _ShowSettings()
    GUISetState(@SW_SHOW, $hWindow_Settings)
    EndFunc ;==>_ShowSettings

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

    Func _ShowHistory()
    If Not FileExists($DLM_HistoryFile) Then IniWrite($DLM_HistoryFile, "Downloads", "%", "%%%")

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

    $aRawData = IniReadSection($DLM_HistoryFile, "Downloads")
    If @error Then
    MsgBox(4096, "Error", "Es ist ein Fehler aufgetreten!")
    Else
    _GUICtrlListView_DeleteAllItems($pListView_History)
    Local $ListView_Items[$aRawData[0][0]]
    For $i = 1 To $aRawData[0][0]
    If $aRawData[$i][0] <> "%" Then $ListView_Items[$i - 1] = GUICtrlCreateListViewItem($aRawData[$i][1], $pListView_History)
    Next
    GUISetState(@SW_SHOW, $hWindow_History)
    EndIf
    EndFunc ;==>_ShowHistory

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

    Func _ShowAddDl()
    $aDrive = DriveGetDrive("fixed")
    If IsArray($aDrive) Then
    $iFreeSpace = Round(DriveSpaceFree($aDrive[1]), 1)
    If $iFreeSpace > 1000 Then
    $sFreeSpace = $iFreeSpace / 1000 & " GB"
    Else
    $sFreeSpace = $iFreeSpace & " MB"
    EndIf
    GUICtrlSetData($pLabel_AddDL_DataSize, "Datenträger " & StringUpper($aDrive[1]) & " " & $sFreeSpace & " frei")
    EndIf
    GUICtrlSetData($pInput_AddDL_FilePath, IniRead($DLM_SystemFile, "Einstellungen", "Download-Ordner", "<Bitte wählen>"))
    GUISetState(@SW_SHOW, $hWindow_AddDl)
    EndFunc ;==>_ShowAddDl

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

    Func MY_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hwndInput = $pInput_AddDL_Url
    If Not IsHWnd($pInput_AddDL_Url) Then $hwndInput = GUICtrlGetHandle($pInput_AddDL_Url)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF)
    $iCode = BitShift($iwParam, 16)
    Switch $hWndFrom
    Case $hwndInput
    Switch $iCode
    Case $EN_CHANGE
    $aCurData = _GetFileInfo(GUICtrlRead($pInput_AddDL_Url))
    If IsArray($aCurData) Then
    $sFName = StringSplit($aCurData[0], ".")
    If IsArray($sFName) And $sFName[0] = 2 Then
    GUICtrlSetData($pInput_AddDL_NewFileName, $aCurData[0])
    EndIf
    $iFileSize = _FormatFileSize(InetGetSize(GUICtrlRead($pInput_AddDL_Url)))
    If StringLeft($iFileSize, 1) = 0 Then $iFileSize &= " - Link prüfen!"
    GUICtrlSetData($pLabel_AddDL_FileSize, "Größe: " & $iFileSize)
    EndIf
    EndSwitch
    EndSwitch
    EndFunc ;==>MY_COMMAND

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

    Func _FormatFileSize($sFunc_Size = 0)
    Local $sFS = ""
    If $sFunc_Size < 1000 Then
    $sFS = $sFunc_Size & " B"
    ElseIf $sFunc_Size > 100000000 Then
    $sFS = Round($sFunc_Size / 100000000, 2) & " GB"
    ElseIf $sFunc_Size > 1000000 Then
    $sFS = Round($sFunc_Size / 1000000, 2) & " MB"
    ElseIf $sFunc_Size > 1000 Then
    $sFS = Round($sFunc_Size / 1000, 2) & " KB"
    EndIf
    Return $sFS
    EndFunc ;==>_FormatFileSize

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

    ; #FUNCTION# ======================================================================================
    ; Function Name: _ListView_InsertProgressBar()
    ; Description: Inserts a progressbar control in the ListView control.
    ; Syntax.........: _ListView_InsertProgressBar($sHwnd, $sItemIndex[, $sSubItemIndex])
    ; Parameter(s): $sHwnd - Handle to the ListView control.
    ; $sItemIndex - Zero based index of the item at which the progressbar should be inserted.
    ; $sSubItemIndex - [Optional] One based index of the subitem where progressbar should be placed, default is 1.
    ;
    ; Return Value(s): Returns the identifier (controlID) of the new progressbar control.
    ; Requirement(s): AutoIt 3.2.10.0 and above
    ; Note(s): Optimal amount of progressbar controls is 5-10. Don`t abuse with many amount of progressbar controls.
    ;
    ; Author(s): R.Gilman (a.k.a rasim), arcker
    ;==================================================================================================
    Func _ListView_InsertProgressBar($sHwnd, $sItemIndex, $sSubItemIndex = 0)
    If Not IsHWnd($sHwnd) Then $sHwnd = GUICtrlGetHandle($sHwnd)

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

    Local $iStyle = _WinAPI_GetWindowLong($sHwnd, $GWL_STYLE)

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

    If BitAND($iStyle, $WS_CLIPCHILDREN) <> $WS_CLIPCHILDREN Then
    _WinAPI_SetWindowLong($sHwnd, $GWL_STYLE, BitOR($iStyle, $WS_CLIPCHILDREN))
    EndIf

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

    Local $aRect

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

    If $sSubItemIndex = 0 Then
    $aRect = _GUICtrlListView_GetItemRect($sHwnd, $sItemIndex, 2)
    Else
    $aRect = _GUICtrlListView_GetSubItemRect($sHwnd, $sItemIndex, $sSubItemIndex)
    EndIf

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

    $aProgress[0][0] += 1
    ReDim $aProgress[$aProgress[0][0] + 1][4]
    $aProgress[$aProgress[0][0]][0] = _Progress_Create($sHwnd, $aRect[0], $aRect[1], $aRect[2] - $aRect[0], $aRect[3] - $aRect[1])

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

    $aProgress[$aProgress[0][0]][1] = $sItemIndex
    $aProgress[$aProgress[0][0]][2] = $sSubItemIndex
    $aProgress[$aProgress[0][0]][3] = $sHwnd

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

    Return $aProgress[$aProgress[0][0]][0]
    EndFunc ;==>_ListView_InsertProgressBar

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

    Func _Progress_Create($hWnd, $iX, $iY, $iWidth = -1, $iHeight = -1, $iStyle = 0, $iExStyle = 0)
    $iStyle = BitOR($iStyle, $WS_CHILD, $WS_VISIBLE)
    Return _WinAPI_CreateWindowEx($iExStyle, "msctls_progress32", "", $iStyle, $iX, $iY, $iWidth, $iHeight, $hWnd)
    EndFunc ;==>_Progress_Create

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

    Func _ListView_Notify($hWnd, $Msg, $wParam, $lParam)
    If $Msg = $WM_SIZE Then
    _WinAPI_InvalidateRect($hWnd)
    Return $GUI_RUNDEFMSG
    EndIf

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

    Local $tNMHEADER, $hWndFrom, $iCode, $i

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

    $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam)
    $hWndFrom = DllStructGetData($tNMHEADER, "hwndFrom")
    $iCode = DllStructGetData($tNMHEADER, "Code")

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

    Switch $iCode
    Case $HDN_ITEMCHANGED, $HDN_ITEMCHANGEDW, $LVN_ENDSCROLL
    If $iCode <> $LVN_ENDSCROLL Then $hWndFrom = _WinAPI_GetParent($hWndFrom)

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

    For $i = 1 To $aProgress[0][0]
    If $aProgress[$i][3] = $hWndFrom Then _
    _MoveProgress($hWndFrom, $aProgress[$i][0], $aProgress[$i][1], $aProgress[$i][2])
    Next

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

    _WinAPI_InvalidateRect($hWndFrom)
    EndSwitch

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

    Return $GUI_RUNDEFMSG
    EndFunc ;==>_ListView_Notify

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

    Func _MoveProgress($hListView, $hProgress, $sItemIndex, $sSubItemIndex)
    Local $aRect

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

    If $sSubItemIndex = 0 Then
    $aRect = _GUICtrlListView_GetItemRect($hListView, $sItemIndex, 2)
    Else
    $aRect = _GUICtrlListView_GetSubItemRect($hListView, $sItemIndex, $sSubItemIndex)
    EndIf

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

    If $aRect[1] < 10 Then
    _WinAPI_ShowWindow($hProgress, $SW_HIDE)
    ElseIf $aRect[1] >= 10 Then
    _WinAPI_ShowWindow($hProgress, $SW_SHOW)
    EndIf

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

    _WinAPI_MoveWindow($hProgress, $aRect[0], $aRect[1], $aRect[2] - $aRect[0], $aRect[3] - $aRect[1], True)
    EndFunc ;==>_MoveProgress

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

    ; #FUNCTION# ====================================================================================================
    ; Description ...: Sets the color of the indicator bar
    ; Parameters ....: $hWnd - Handle to the control
    ; $iColor - The new progress indicator bar color. Specify the CLR_DEFAULT value to cause the progress bar
    ; +to use its default progress indicator bar color.
    ; Return values .: Success - The previous progress indicator bar color, or CLR_DEFAULT if the progress indicator bar color
    ; +is the default color.
    ; Author ........: Paul Campbell (PaulIA), Updated By Arcker
    ; Remarks .......: This message is supported only in the Windows Classic theme
    ; Related .......:
    ; ====================================================================================================
    Func _Progress_SetBarColor($hWnd, $iColor)
    Return _SendMessage($hWnd, $PBM_SETBARCOLOR, 0, $iColor)
    EndFunc

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

    ; #FUNCTION# ====================================================================================================
    ; Description ...: Sets the current position
    ; Parameters ....: $hWnd - Handle to the control
    ; $iPos - The new position
    ; Return values .: Success - The previous position
    ; Author ........: Paul Campbell (PaulIA), Updated By Arcker
    ; Remarks .......:
    ; Related .......: _Progress_GetPos
    ; ====================================================================================================
    Func _Progress_SetPos($hWnd, $iPos)
    Return _SendMessage($hWnd, $PBM_SETPOS, $iPos, 0)
    EndFunc

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

    ; #FUNCTION# ====================================================================================================
    ; Description ...: Sets the background color in the progress bar
    ; Parameters ....: $hWnd - Handle to the control
    ; $iColor - The new background color. Specify the CLR_DEFAULT value to cause the progress bar to use its
    ; +default background color.
    ; Return values .: Success - The previous background color, or CLR_DEFAULT if the background color is the default color.
    ; Author ........: Paul Campbell (PaulIA), Updated By Arcker
    ; Remarks .......: This message is supported only in the Windows Classic theme
    ; Related .......:
    ; ====================================================================================================
    Func _Progress_SetBkColor($hWnd, $iColor)
    Return _SendMessage($hWnd, $PBM_SETBKCOLOR, 0, $iColor)
    EndFunc

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

    ; #FUNCTION# ====================================================================================================

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

    ; Description ...: Specifies the step increment
    ; Parameters ....: $hWnd - Handle to the control
    ; $iStep - Step increment.
    ; Return values .: Success - The previous step increment
    ; Author ........: Paul Campbell (PaulIA)
    ; Remarks .......: The step increment is the amount by which the progress bar increases its current position whenever you use the
    ; _Progress_StepIt function. By default, the step increment is set to 10.
    ; Related .......: _Progress_StepIt
    ; ====================================================================================================
    Func _Progress_SetStep($hWnd, $iStep=10)
    Return _SendMessage($hWnd, $PBM_SETSTEP, $iStep, 0)
    EndFunc

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

    ; #FUNCTION# ====================================================================================================
    ; Description ...: Advances the current position by the step increment
    ; Parameters ....: $hWnd - Handle to the control
    ; Return values .: Success - The previous position
    ; Author ........: Paul Campbell (PaulIA), Updated By Arcker
    ; Remarks .......:
    ; Related .......: _Progress_SetStep
    ; ====================================================================================================
    Func _Progress_StepIt($hWnd)
    Return _SendMessage($hWnd, $PBM_STEPIT, 0, 0)
    EndFunc

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

    ; #FUNCTION# ====================================================================================================
    ; Description ...: Delete the progressbar control
    ; Parameters ....: $hWnd - Handle to the control
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: G. Sandler (MrCreatoR), Updated by rasim
    ; Remarks .......:
    ; Related .......: _Progress_SetStep
    ; ====================================================================================================
    Func _Progress_Delete($hWnd)
    Local $aTmpArr[1][3]

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

    For $i = 1 To $aProgress[0][0]
    If $aProgress[$i][0] <> $hWnd Then
    $aTmpArr[0][0] += 1
    ReDim $aTmpArr[$aTmpArr[0][0]+1][4]

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

    $aTmpArr[$aTmpArr[0][0]][0] = $aProgress[$i][0]
    $aTmpArr[$aTmpArr[0][0]][1] = $aProgress[$i][1]
    $aTmpArr[$aTmpArr[0][0]][2] = $aProgress[$i][2]
    $aTmpArr[$aTmpArr[0][0]][3] = $aProgress[$i][3]
    EndIf
    Next

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

    $aProgress = $aTmpArr

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

    Local $aResult = DllCall("User32.dll", "int", "DestroyWindow", "hwnd", $hWnd)
    If @error Then Return SetError(1, 0, 0)

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

    Return $aResult[0] <> 0
    EndFunc

    [/autoit]

    dies ist die Version v.0.2

    mfg autoBert