1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. funkey

Beiträge von funkey

  • Arraylimit von 65.530 übersteigen

    • funkey
    • 14. August 2012 um 14:06

    Bei _ArrayDisplay greift folgendes AutoIt-Limit:
    GUI_MAXCONTROLS 65532 Maximum number of controls in GUI box.
    Man kann in einer Anwendung einfach nicht mehr als 65532 Controls erzeugen.
    Aber man könnte _ArrayDisplay umbauen, damit es mit der GuiListView-UDF läuft, dann greift diese Grenze nicht mehr, da dann keine 'Controls' für jedes Item erstellt werden.

  • Computername über DLL ermitteln

    • funkey
    • 14. August 2012 um 13:59

    Besser wäre DWORD_PTR anstelle von INT_PTR zu verwenden, das macht einen Unterschied auf x86 und x64 Systemen.

  • Computername über DLL ermitteln

    • funkey
    • 14. August 2012 um 13:45

    So hätte es auch funktioniert, war mir aber viel zu kompliziert:

    Spoiler anzeigen
    [autoit]

    Func _GetComputerName()
    $fkernel32 = @SystemDir & "\" & "kernel32.dll"
    $function = "GetComputerName"
    $MaxLength = 15
    $lpBuffer = DllStructCreate("char[" & $MaxLength + 2 & "]")
    $nSize = DllStructCreate("int nSize")
    DllStructSetData($nSize, 1, $MaxLength)
    $dll = DllOpen($fkernel32)
    $return = DllCall($dll, "int", $function, "ptr", DllStructGetPtr($lpBuffer), "int_ptr", DllStructGetPtr($nSize))
    DllClose($dll)
    Return DllStructGetData($lpBuffer,1)
    EndFunc

    [/autoit]

    Außerdem:
    'int*, 100' heißt nicht, dass ein Pointer eines Integers mit der Adresse 100 übergeben wird, sondern, dass die Variable ByRef übergeben wird und so von der Funktion verändert werden kann. AutoIt macht alles automatisch, damit der Funktion ein Pointer übergeben wird.

  • Computername über DLL ermitteln

    • funkey
    • 14. August 2012 um 13:21

    Das geht auch viel einfacher:

    [autoit]

    $sCN = _GetComputerName()
    ConsoleWrite($sCN & @CRLF)

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

    Func _GetComputerName()
    Local $iLen = 100
    $aRet = DllCall("kernel32.dll", "int", "GetComputerName", "str", "", "int*", $iLen)
    Return $aRet[1]
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Klassichen OpenDialog ansteuern?

    • funkey
    • 13. August 2012 um 13:54

    Nach über 3 Monaten warten auf eine Antwort ....
    Was läuft denn nicht bei meinem Beispiel??

  • Label-Text senktrecht ?

    • funkey
    • 8. August 2012 um 12:21

    Oder das: _GuiCtrlSetFont

  • Input-Feld soll nur bei {enter} Aktionen auslösen

    • funkey
    • 5. August 2012 um 20:52
    Zitat von RR04
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;i UBound in der Schleife verursacht
    ;i Mehrfachaufrufe (bei jedem $i) und das Prog. wird unnötig gebremst
    For $i = 0 To UBound($aInput) - 1
    $aInput[$i][0] = GUICtrlCreateInput("", 20, 20 + ($i * 40), 200, 20)
    Next

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

    ;i Besser so:
    $UBoundaInput = UBound($aInput) - 1 ;i einmalige UBoundabfrage
    For $i = 0 To $UBoundaInput ;i statisch kein UBound
    $aInput[$i][0] = GUICtrlCreateInput("", 20, 20 + ($i * 40), 200, 20)
    Next

    [/autoit]
    Alles anzeigen

    Wenn das so ist, dann wäre das eine Endlosschleife, oder?

    [autoit]

    #include <Array.au3>

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

    Global $aArray[3] = [1, 2, 3]

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

    For $i = 0 To UBound($aArray) - 1
    _ArrayAdd($aArray, $i + 3)
    ConsoleWrite($aArray[$i] & @CRLF)
    Next

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

    _ArrayDisplay($aArray)

    [/autoit]
  • Input-Feld soll nur bei {enter} Aktionen auslösen

    • funkey
    • 4. August 2012 um 21:32

    Du könntest ja trotzdem Die Acceleratoren nehmen, und dann bei Enter mit GuiCtrlGetState($nEdit) auf $GUI_FOCUS prüfen und sonst die Funktion beenden. Also ohne Schleife.

  • Scite4Autoit - Syntax check prod ausschalten

    • funkey
    • 4. August 2012 um 19:56

    Also ich habe keine Probleme mit Scite4AutoIt und bin für die Meldungen dankbar.

  • RGB Farbcode über HSL Farbcode verändern (Sättigung & Helligkeit)

    • funkey
    • 3. August 2012 um 06:18
    [autoit]

    _ColorConvertHSLtoRGB
    _ColorConvertRGBtoHSL

    [/autoit]
  • Xorianator...

    • funkey
    • 31. Juli 2012 um 09:58

    Auch von mir alles Gute zum Geburtstag!! :party:

  • Dateinamen rückwärts anzeigen?

    • funkey
    • 31. Juli 2012 um 08:35

    Was soll das hier!
    Das ist absolut gegen die Regeln, ganz egal wie 'harmlos' das ganze zu sein scheint.

    @Tim29057: Da gibt es nichts zu meckern! Halte dich daran! :cursing:

  • $CmdLine ohne zu komplieren testen

    • funkey
    • 30. Juli 2012 um 13:06

    Unter View - Parameter kannst du das einstellen was du brauchst.

    Edit: Shift + F8 ;)

  • Wie Breite von Tab-Objekt und GUI dynamisch ändern

    • funkey
    • 27. Juli 2012 um 18:08
    Spoiler anzeigen
    [autoit]

    #include <GuiTab.au3>
    #include <GUIConstantsEx.au3>

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

    Opt("GUIResizeMode", $GUI_DOCKBORDERS)

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

    Global $hGui = GUICreate("Test", 500, 500)

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

    Global $nTab = GUICtrlCreateTab(10, 10, 480, 480)
    Global $hTab = GUICtrlGetHandle(-1)
    Global $nItem1 = GUICtrlCreateTabItem("Tab1")
    Global $nItem2 = GUICtrlCreateTabItem("Tab2")
    Global $nItem3 = GUICtrlCreateTabItem("Tab3")
    Global $nItem4 = GUICtrlCreateTabItem("Tab4")
    GUICtrlCreateTabItem("")

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

    Global $aWidth[4] = [480, 550, 200, 400]

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

    GUISetState()

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

    Global $sMsg, $iTab
    Global $iBorderY, $iBorderX
    _SystemGetWindowBorder($iBorderY, $iBorderX)

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

    While 1
    $sMsg = GUIGetMsg()
    Switch $sMsg
    Case -3
    Exit
    Case $nTab
    $iTab = _GUICtrlTab_GetCurSel($hTab)
    WinMove($hGui, "", Default, Default, $aWidth[$iTab] + 20 + $iBorderX, 500 + $iBorderY)
    EndSwitch
    WEnd

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

    Func _SystemGetWindowBorder(ByRef $_iTopBorder, ByRef $_iSideBorder)
    ; == by BugFix
    Local Const $SM_CYCAPTION = 4, $SM_CYEDGE = 46, $SM_CYBORDER = 6, $SM_CXBORDER = 5, $SM_CXEDGE = 45
    Local $aMetrics[5][2] = [[$SM_CYCAPTION], [$SM_CYEDGE], [$SM_CYBORDER], [$SM_CXBORDER], [$SM_CXEDGE]]
    Local $dll = DllOpen("user32.dll"), $aRet
    For $i = 0 To 4
    $aRet = DllCall($dll, "int", "GetSystemMetrics", "int", $aMetrics[$i][0])
    If IsArray($aRet) Then $aMetrics[$i][1] = $aRet[0]
    Next
    DllClose($dll)
    $_iTopBorder = $aMetrics[0][1] + $aMetrics[1][1] + $aMetrics[2][1]
    $_iSideBorder = $aMetrics[3][1] + $aMetrics[4][1]
    EndFunc

    [/autoit]
  • FileCopy abbrechen wenn Bedingung erfüllt

    • funkey
    • 25. Juli 2012 um 18:21

    Das gibt es sicher schon einige Male, aber ich hab's schnell nochmal gemacht.

    Spoiler anzeigen
    [autoit]

    HotKeySet("+{ESC}", "_AbortCopy") ;Shift+Escape
    Global $iAbort = 0
    Global $iOK = _FileCopyEx("large.zip", "large_copy.zip", "_Callback")

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

    Func _FileCopyEx($sSource, $sDest, $sCallback, $iOverWrite = 1, $iStepBytes = 8388608)
    If StringInStr(FileGetAttrib($sDest), "D") Then $sDest &= StringTrimLeft($sSource, StringInStr($sSource, "\", 0, -1) - 1)
    If $iOverWrite = 0 And FileExists($sDest) Then Return 1

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

    Local $hSource = FileOpen($sSource, 16)
    If $hSource = -1 Then Return SetError(1, 0, 0)

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

    If FileExists($sDest) Then FileDelete($sDest)

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

    Local $hDest = FileOpen($sDest, 17)
    If $hDest = -1 Then
    FileClose($hSource)
    Return SetError(2, 0, 0)
    EndIf

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

    Local $iSize = FileGetSize($sSource)
    Local $iMod = Mod($iSize, $iStepBytes)
    Local $iCount = Int(Floor($iSize / $iStepBytes))
    Local $bTemp

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

    For $i = 1 To $iCount
    If Call($sCallback, $i * $iStepBytes, $iSize) = 0 Then ;Abort
    FileClose($hSource)
    FileClose($hDest)
    FileDelete($sDest)
    Return SetError(3, 0, 0)
    EndIf

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

    $bTemp = FileRead($hSource, $iStepBytes)
    FileWrite($hDest, $bTemp)
    Next

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

    If $iMod <> 0 Then
    $bTemp = FileRead($hSource, $iMod)
    FileWrite($hDest, $bTemp)
    EndIf

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

    FileClose($hSource)
    FileClose($hDest)

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

    Return SetError(0, 0, 1)
    EndFunc

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

    Func _Callback($iBytesCopied, $iBytesTotal)
    ConsoleWrite(StringFormat("Bytes copied: %i / %i", $iBytesCopied, $iBytesTotal) & @CRLF)
    ;Hier die jeweilige Abbruchbedingung einbauen
    If $iAbort = 1 Then
    Return 0 ;Abort
    Else
    Return 1 ;Continue
    EndIf
    EndFunc

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

    Func _AbortCopy()
    $iAbort = 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • PDF Datei nach Wort durchsuchen und dieses dann als Dateiname verwenden und die Datei umbenennen.

    • funkey
    • 25. Juli 2012 um 12:01

    Ich würde mal vorschlagen, du liest dir zu jedem Befehl in deinem Skript GENAU die dazugehörige Hilfeseite durch, probierst die Beispiele dazu und versuchst sie zu verstehen. Sonst wird das wahrscheinlich ein ziemlich langer Thread.

  • GDIpProgress wird falsch dargestellt

    • funkey
    • 23. Juli 2012 um 19:27
    GDIpProgress.au3
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.12.0
    Author: Prog@ndy
    after Script from nobbe ( 2008 in http://www.autoitscript.com/forum/index.ph…ndpost&p=485031 )

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

    Script Function: A UDF for colored Progressbars with GDIPlus

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

    Remarks: Theres an example from Line 22 to line 112 ( between the first #Region - #Endregion Tags

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

    #ce ----------------------------------------------------------------------------

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

    #include-once
    #include <GuiConstants.au3>
    #include <WIndowsConstants.au3>
    #include <EditConstants.au3>
    #include <WinApi.au3>
    #include <GdiPlus.au3>

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

    Global $_Progress_ahCallBack[3] = [-1, -1, 0], $_Progress_Bars[1][15] = [[-1]], $iPercent = 0;

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

    #EndRegion EXAMPLE
    ;##################################################

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

    ;-------------------------------------------------------------------
    #Region Colored Progressbar
    ;===============================================================================
    ;
    ; Function Name: _ProgressCreate
    ; Description:: Creates a GDIplus Progressbar
    ; Parameter(s): $x : left
    ; $y : top
    ; $w : width
    ; $h : height
    ; $Col : [Optional] Top color of the foreground gradient
    ; $GradCol : [Optional] Bottom color of the foreground gradient
    ; $BG : [Optional] Top color of the background gradient
    ; $GradBG : [Optional] Bottom color of the background gradient
    ; Requirement(s): GDIplus
    ; Return Value(s): Success: ID of Progressbar, Error: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressCreate($x, $y, $w = 204, $h = 24, $Col = 0xFFFF00, $GradCol = 0x00FF00, $BG = 0xAAAA00, $GradBG = 0xFF0000)
    __CheckForGDIPlus()
    $ID = UBound($_Progress_Bars)
    ReDim $_Progress_Bars[$ID + 1][15]
    $_Progress_Bars[$ID][0] = GUICtrlCreateLabel("", $x, $y, $w, $h)
    GUICtrlSetStyle(-1,0)
    GUICtrlSetBkColor($_Progress_Bars[$ID][0], -2) ; $GUI_BKCOLOR_TRANSPARENT = -2
    If @error Then Return SetError(@error, @extended, 0)
    If $Col = -1 Then $Col = 0xFFFF00
    If $BG = -1 Then $BG = 0xAAAA00
    If $GradCol = -1 Then $GradCol = 0x00FF00
    If $GradBG = -1 Then $GradBG = 0xFF0000
    _GDIPlus_Startup()
    Local $graphic = _GDIPlus_GraphicsCreateFromHWND(GUICtrlGetHandle($_Progress_Bars[$ID][0]))
    Local $bitmap = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
    Local $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)

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

    Local $bmpfront = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
    _CreateGradientImg($bmpfront, $w - 1, $h - 1, $Col, $GradCol)
    $_Progress_Bars[$ID][11] = _GDIPlus_ImageGetWidth($bmpfront)
    $_Progress_Bars[$ID][12] = _GDIPlus_ImageGetHeight($bmpfront)

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

    Local $bmpBack = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
    _CreateGradientImg($bmpBack, $w - 1, $h - 1, $BG, $GradBG)
    $_Progress_Bars[$ID][13] = _GDIPlus_ImageGetWidth($bmpBack)
    $_Progress_Bars[$ID][14] = _GDIPlus_ImageGetHeight($bmpBack)

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

    $_Progress_Bars[$ID][1] = $w
    $_Progress_Bars[$ID][2] = $h

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

    $_Progress_Bars[$ID][3] = $graphic
    $_Progress_Bars[$ID][4] = $bitmap
    $_Progress_Bars[$ID][5] = $backbuffer
    $_Progress_Bars[$ID][6] = $bmpfront
    $_Progress_Bars[$ID][7] = $bmpBack
    $_Progress_Bars[$ID][8] = 0
    $_Progress_Bars[$ID][9] = 1
    $_Progress_Bars[$ID][10] = "Arial|10|1|0xFF000000|0"
    _ProgressRefresh($ID, 0)
    _Progress_CallBack_Init()
    Return SetError(0, 0, $ID)
    EndFunc ;==>_ProgressCreate

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

    ;===============================================================================
    ;
    ; Function Name: _ProgressDelete
    ; Description:: Deletes a GDI+ Progressbar
    ; Parameter(s): $ID : ID of Progressbar
    ; Requirement(s): GDIplus
    ; Return Value(s): Sucess: 1, Error: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressDelete(ByRef $ID)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If $_Progress_Bars[$ID][0] = -1 Then Return SetError(-1,0,0)
    _Progress_CallBack_Free()
    Local $temp[9],$i
    FoR $i = 0 To 8
    $temp[$i] = $_Progress_Bars[$ID][$i]
    Next
    $_Progress_Bars[$ID][0] = -1
    Local $ret = GUICtrlDelete($temp[0])
    If @error Then Return SetError(1,0,0)
    $_Progress_Bars[$ID][1] = -1
    $_Progress_Bars[$ID][2] = -1

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

    $_Progress_Bars[$ID][3] = -1
    _GDIPlus_GraphicsDispose($temp[3])
    Local $error = @error
    $_Progress_Bars[$ID][4] = -1
    _WinAPI_DeleteObject($temp[4])
    Local $error = @error
    $_Progress_Bars[$ID][5] = -1
    _GDIPlus_GraphicsDispose($temp[5])
    Local $error = @error
    $_Progress_Bars[$ID][6] = -1
    _WinAPI_DeleteObject($temp[6])
    Local $error = @error
    _GDIPlus_ImageDispose($temp[6])
    Local $error = @error
    $_Progress_Bars[$ID][7] = -1
    _WinAPI_DeleteObject($temp[7])
    Local $error = @error
    _GDIPlus_ImageDispose($temp[7])
    $_Progress_Bars[$ID][8] = -1

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

    _GDIPlus_Shutdown()
    Return SetError($error, 0, $error=0)
    EndFunc ;==>_ProgressDelete

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

    ;===============================================================================
    ;
    ; Function Name: _ProgressSetColors(
    ; Description:: Sets gradients as foreground and background
    ; Parameter(s): $ID : ID of Progressbar
    ; $Col : Top color of the foreground gradient
    ; $GradCol : Bottom color of the foreground gradient
    ; $BG : Top color of the background gradient
    ; $GradBG : Bottom color of the background gradient
    ; If $Col or $GradCol is -1, the foreground gradient isn't changed
    ; If $BG or $GradBG is -1, the background gradient isn't changed
    ; Requirement(s): Winapi.au3, GDIplus
    ; Return Value(s): Success: 1, Error: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressSetColors(ByRef $ID, $Col = -1, $GradCol = -1, $BG = -1, $GradBG = -1)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If Execute($Col) > -1 And Execute($GradCol) > -1 Then
    _WinAPI_DeleteObject($_Progress_Bars[$ID][6])
    _GDIPlus_ImageDispose($_Progress_Bars[$ID][6])
    $_Progress_Bars[$ID][6] = _GDIPlus_BitmapCreateFromGraphics($_Progress_Bars[$ID][1], $_Progress_Bars[$ID][2], $_Progress_Bars[$ID][3])
    _CreateGradientImg($_Progress_Bars[$ID][6], $_Progress_Bars[$ID][1] - 1, $_Progress_Bars[$ID][2] - 1, $Col, $GradCol)
    $_Progress_Bars[$ID][11] = $_Progress_Bars[$ID][1]
    $_Progress_Bars[$ID][12] = $_Progress_Bars[$ID][2]
    EndIf
    If Execute($BG) > -1 And Execute($GradBG) > -1 Then
    _WinAPI_DeleteObject($_Progress_Bars[$ID][7])
    _GDIPlus_ImageDispose($_Progress_Bars[$ID][7])
    $_Progress_Bars[$ID][7] = _GDIPlus_BitmapCreateFromGraphics($_Progress_Bars[$ID][1], $_Progress_Bars[$ID][2], $_Progress_Bars[$ID][3])
    _CreateGradientImg($_Progress_Bars[$ID][7], $_Progress_Bars[$ID][1] - 1, $_Progress_Bars[$ID][2] - 1, $BG, $GradBG)
    $_Progress_Bars[$ID][13] = $_Progress_Bars[$ID][1]
    $_Progress_Bars[$ID][14] = $_Progress_Bars[$ID][2]
    EndIf
    ;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
    Return SetError(@error, 0, @error = 0)
    EndFunc ;==>_ProgressSetColors

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

    ;===============================================================================
    ;
    ; Function Name: _ProgressSetImages(
    ; Description:: Sets images as foreground and background by Path
    ; Parameter(s): $ID : ID of Progressbar
    ; $ForeBmp : Path to image , empty String "" To leave the old
    ; The foreground image
    ; $BackBmp : [Optional] Path to image , empty String "" To leave the old
    ; The background image
    ; Requirement(s): Winapi.au3, GDIplus
    ; Return Value(s): Success: 1, Error: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressSetImages(ByRef $ID, $ForeBmp = "", $backBMP = "")
    Local $bmp = ""
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If GUICtrlGetHandle($_Progress_Bars[$ID][0]) = 0 Then Return SetError(2, 0, 0)
    If $ForeBmp <> "" And FileExists($ForeBmp) Then
    $bmp = _GDIPlus_ImageLoadFromFile($ForeBmp)
    If Not @error Then
    ;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][6])
    _GDIPlus_ImageDispose($_Progress_Bars[$ID][6])
    $_Progress_Bars[$ID][6] = $bmp
    $_Progress_Bars[$ID][11] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][6])
    $_Progress_Bars[$ID][12] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][6])
    EndIf
    EndIf
    If $backBMP <> "" And FileExists($backBMP) Then
    $bmp = _GDIPlus_ImageLoadFromFile($backBMP)
    If Not @error Then
    ;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][7])
    _GDIPlus_ImageDispose($_Progress_Bars[$ID][7])
    $_Progress_Bars[$ID][7] = $bmp
    $_Progress_Bars[$ID][13] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][7])
    $_Progress_Bars[$ID][14] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][7])
    EndIf
    EndIf
    ;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
    Return SetError(@error, 0, @error = 0)
    EndFunc ;==>_ProgressSetImages

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

    ;===============================================================================
    ;
    ; Function Name: _ProgressSetHBitmaps(
    ; Description:: Sets previously loaded GDIplus Images / bitmaps as foreground and background
    ; Parameter(s): $ID : ID of Progressbar
    ; $ForeBmp : Handle to GDIplus -image or -bitmap , -1 To leave the old
    ; The foreground image
    ; $BackBmp : [Optional] Handle to GDIplus -image or -bitmap , -1 To leave the old
    ; The background image
    ; Requirement(s): Winapi.au3, GDIplus
    ; Return Value(s): Success: 1, Error: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressSetHBitmaps(ByRef $ID, $ForeBmp = -1, $backBMP = -1)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If GUICtrlGetHandle($_Progress_Bars[$ID][0]) = 0 Then Return SetError(2, 0, 0)
    If $ForeBmp > -1 And _GDIPlus_ImageGetHeight($ForeBmp) Then
    ;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][6])
    _GDIPlus_ImageDispose($_Progress_Bars[$ID][6])
    $_Progress_Bars[$ID][6] = $ForeBmp
    $_Progress_Bars[$ID][11] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][6])
    $_Progress_Bars[$ID][12] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][6])
    EndIf
    If $backBMP > -1 And _GDIPlus_ImageGetHeight($backBMP) Then
    ;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][7])
    _GDIPlus_ImageDispose($_Progress_Bars[$ID][7])
    $_Progress_Bars[$ID][7] = $backBMP
    $_Progress_Bars[$ID][13] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][7])
    $_Progress_Bars[$ID][14] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][7])
    EndIf
    ;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
    Return SetError(@error, 0, @error = 0)
    EndFunc ;==>_ProgressSetHBitmaps

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

    ;===============================================================================
    ;
    ; Function Name: _ProgressSetText(
    ; Description:: Sets the text to be shown
    ; Parameter(s): $ID : ID of Progressbar
    ; $text: -> TRUE : Show percent
    ; -> A string to be shown, %P% is replaced with Percentage
    ; Requirement(s): This UDf
    ; Return Value(s): Success: 1, Error: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressSetText(ByRef $ID, $text = True)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    $_Progress_Bars[$ID][9] = $text
    ;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
    Return SetError(@error, 0, @error = 0)
    EndFunc ;==>_ProgressSetText

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

    ;===============================================================================
    ;
    ; Function Name: _ProgressSetFont()
    ; Description:: Sets the Font and Color of the Text of the Progressbar
    ; Parameter(s): $ID : ID of Progressbar
    ; $Font : Name of the font (empty String "" to do not change)
    ; $size : [Optional] size of the font ( 0 or negative to leave the old)
    ; $Styles : [Optional] The style of the typeface. Can be a combination of the following:
    ; 0 - Normal weight or thickness of the typeface
    ; 1 - Bold typeface
    ; 2 - Italic typeface
    ; 4 - Underline
    ; 8 - Strikethrough
    ; ( -1, negative to leave the old)
    ; $ARGBcolor : [Optional] the color of the font, can be RGB or ARGB (depending on $isARGB)
    ; (empty String "" to do not change)
    ; $InverseColor: [Optional] should the color be inversed when the bar is under the text?
    ; $isARGB : [Optional] Sets, whether $ARGBcolor is RGB (False, default) or ARGB (True)
    ; Requirement(s): This UDF
    ; Return Value(s): Success: 1, Error: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressSetFont(ByRef $ID, $Font, $size = Default, $Styles = Default, $ARGBcolor = Default, $InverseColor=-1, $isARGB = False)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    Local $array = StringSplit($_Progress_Bars[$ID][10], "|")
    If $Font <> "" And IsString($Font) And $Font <> Default Then $array[1] = $Font
    $size = Number($size)
    If $size > 0 And $size <> Default Then $array[2] = $size
    $Styles = Number($Styles)
    If $Styles > -1 And $Styles <> Default Then $array[3] = BitAND($Styles, 15)
    If Not $isARGB Then $ARGBcolor = "0xFF" & Hex(Int($ARGBcolor), 6)
    If Not ($ARGBcolor == "") And Not ($ARGBcolor == Default) Then $array[4] = "0x" & Hex(Int($ARGBcolor), 8)
    If $InverseColor > 0 Then $array[5] = "1"
    If $InverseColor = 0 Then $array[5] = "0"
    $_Progress_Bars[$ID][10] = $array[1] & "|" & $array[2] & "|" & $array[3] & "|" & $array[4] & "|" & $array[5]
    ;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
    Return SetError(@error, 0, @error = 0)
    EndFunc ;==>_ProgressSetFont

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

    ;===============================================================================
    ;
    ; Function Name: _ProgressSet()
    ; Description:: Sets the percentage of the Progressbar
    ; Parameter(s): $ID : ID of Progressbar
    ; $prc The percentage to set
    ; Requirement(s): This UDF :)
    ; Return Value(s): If Progressbar odes not Exist: @error is set to 1
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressSet(ByRef $ID, $prc)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If $prc > 100 Then $prc = 100
    If $prc < 0 Then $prc = 0
    $_Progress_Bars[$ID][8] = $prc
    Return 1
    EndFunc ;==>_ProgressSet
    Func _ProgressGet(ByRef $ID)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    Return _WinAPI_LoWord($_Progress_Bars[$ID][8])
    EndFunc
    ;===============================================================================
    ;
    ; Function Name: _ProgressMarquee()
    ; Description:: Sets the
    ; Parameter(s): $ID : ID of Progressbar
    ; $speed : The speed of the Marquee: 1 to 10, smaller as 1 turns it off
    ; $makeSmallFront : Crop the Front image to 1/10 of its former width
    ; If it was created by _ProgressSetColors, this is 1/10 of Progress Width :)
    ; If this is set to -1 and $speed is set to < 0 then the Front image size is
    ; set to the width of the Progressbar
    ; Requirement(s): WinAPI
    ; Return Value(s): If Progressbar does not Exist: @error is set to 1
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;
    Func _ProgressMarquee(ByRef $ID, $speed = 2, $makeSmallFront = 1)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If $speed < 0 Then
    $_Progress_Bars[$ID][8] = _WinAPI_LoWord($_Progress_Bars[$ID][8])
    If $makeSmallFront = -1 Then $_Progress_Bars[$ID][11] = $_Progress_Bars[$ID][1]
    Return 1
    EndIf
    If $speed > 10 Then $speed = 10
    If $speed < 1 Then $speed = 1
    $_Progress_Bars[$ID][8] = _WinAPI_MakeLong(_WinAPI_LoWord($_Progress_Bars[$ID][8]), Number($speed))
    If $makeSmallFront Then $_Progress_Bars[$ID][11] = Int($_Progress_Bars[$ID][11] / 10)
    Return 1
    EndFunc ;==>_ProgressMarquee

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

    ; Author(s): Prog@ndy
    Func _ProgressRefresh(ByRef $ID, $prc = Default)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If $_Progress_Bars[$ID][1] < 1 Then Return SetError(2, 0, 0)
    Local $bar_height = $_Progress_Bars[$ID][2]
    Local $bar_width = $_Progress_Bars[$ID][1]
    If $prc = Default Then $prc = $_Progress_Bars[$ID][8]
    If $_Progress_Bars[$ID][8] > 65535 Then Return _ProgressRefreshMarquee($ID)
    If $prc > 100 Then $prc = 100
    If $prc < 0 Then $prc = 0
    $_Progress_Bars[$ID][8] = $prc
    ;~ $iPercent = $prc
    ;~ ConsoleWrite($iPercent & @CRLF)
    ;~ GUICtrlSetData($Status_Label, $prc & "%")
    Local $position_in_bar = Int(($bar_width) / 100 * $prc) ;; or we move out the bar
    If $prc = 0 Then $position_in_bar = 0
    _GDIPlus_GraphicsClear($_Progress_Bars[$ID][5], 0xFFFFFFFF)

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

    ;~ ; draw grey bar to right side
    ;~ _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][7], Int(($_Progress_Bars[$ID][13] / 100) * $prc), 0, Int(($_Progress_Bars[$ID][13] / 100) * (100 - $prc)), $_Progress_Bars[$ID][14], _
    ;~ $position_in_bar , _
    ;~ 0, _
    ;~ $bar_width - ($position_in_bar ), _
    ;~ $bar_height);
    ;~
    ; draw grey bar to right side
    _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][7], 0 , 0, $_Progress_Bars[$ID][13] , $_Progress_Bars[$ID][14], _
    0 , _
    0, _
    $bar_width , _
    $bar_height);

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

    ;; draw blue bar from left
    If $position_in_bar > 0 Then _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][6], _
    0, 0, Int(($_Progress_Bars[$ID][11] / 100) * $prc), $_Progress_Bars[$ID][12], _
    0, _
    0, _
    $position_in_bar, _
    $bar_height)

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

    If Not IsString($_Progress_Bars[$ID][9]) And $_Progress_Bars[$ID][9] = True Then
    _DrawStringCenter($_Progress_Bars[$ID][5], $prc & "%", $bar_width, $bar_height, $_Progress_Bars[$ID][10])
    If $position_in_bar Then _DrawStringCenter($_Progress_Bars[$ID][5], $prc & "%", $bar_width, $bar_height, $_Progress_Bars[$ID][10], $position_in_bar)
    ElseIf StringLen($_Progress_Bars[$ID][9]) > 0 Then
    _DrawStringCenter($_Progress_Bars[$ID][5], StringReplace($_Progress_Bars[$ID][9], "%P%", $prc), $bar_width, $bar_height, $_Progress_Bars[$ID][10])
    If $position_in_bar Then _DrawStringCenter($_Progress_Bars[$ID][5], StringReplace($_Progress_Bars[$ID][9], "%P%", $prc), $bar_width, $bar_height, $_Progress_Bars[$ID][10], $position_in_bar)
    EndIf
    ;~ _GDIPlus_GraphicsDrawString($_Progress_Bars[$ID][5],$prc & " %",Ceiling(($bar_width/2)-15),Ceiling(($bar_height/2)-5))
    _GDIPlus_GraphicsDrawImage($_Progress_Bars[$ID][3], $_Progress_Bars[$ID][4], 0, 0)

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

    EndFunc ;==>_ProgressRefresh

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

    ; Author(s): Prog@ndy
    Func _ProgressRefreshMarquee(ByRef $ID, $prc = Default)
    If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
    If $_Progress_Bars[$ID][1] < 1 Then Return SetError(2, 0, 0)
    Local $bar_height = $_Progress_Bars[$ID][2]
    Local $bar_width = $_Progress_Bars[$ID][1]
    If $prc = Default Then $prc = _WinAPI_LoWord($_Progress_Bars[$ID][8])
    If $prc > 100 Then $prc = 0
    If $prc < 0 Then $prc = 0
    $_Progress_Bars[$ID][8] = _WinAPI_MakeLong($prc + _WinAPI_HiWord($_Progress_Bars[$ID][8]), _WinAPI_HiWord($_Progress_Bars[$ID][8]))
    ;~ $iPercent = $prc
    ;~ ConsoleWrite($iPercent & @CRLF)
    ;~ GUICtrlSetData($Status_Label, $prc & "%")
    Local $position_in_bar = Int(($bar_width + ($bar_height / $_Progress_Bars[$ID][12] * $_Progress_Bars[$ID][11])) / 100 * $prc) ;; or we move out the bar
    If $prc = 0 Then $position_in_bar = 0
    _GDIPlus_GraphicsClear($_Progress_Bars[$ID][5], 0xFFFFFFFF)
    ; draw grey bar to right side
    _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][7], 0, 0, $_Progress_Bars[$ID][13], $_Progress_Bars[$ID][14], _
    0, _
    0, _
    $bar_width, _
    $bar_height);
    ;; draw blue bar from left
    If $position_in_bar > 0 Then _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][6], _
    0, 0, $_Progress_Bars[$ID][11], $_Progress_Bars[$ID][12], _
    $position_in_bar - ($bar_height / $_Progress_Bars[$ID][12] * $_Progress_Bars[$ID][11]), _
    0, _
    $bar_height / $_Progress_Bars[$ID][12] * $_Progress_Bars[$ID][11], _
    $bar_height)
    If (Not IsString($_Progress_Bars[$ID][9])) And $_Progress_Bars[$ID][9] = True Then
    _DrawStringCenter($_Progress_Bars[$ID][5], StringReplace(" ", " ", ".", Mod(@SEC, 5) + 1), $bar_width, $bar_height, $_Progress_Bars[$ID][10])
    ElseIf StringLen($_Progress_Bars[$ID][9]) > 0 Then
    _DrawStringCenter($_Progress_Bars[$ID][5], StringReplace($_Progress_Bars[$ID][9], "%P%", StringReplace(" ", " ", ".", Mod(@SEC, 5) + 1)), $bar_width, $bar_height, $_Progress_Bars[$ID][10])
    EndIf
    ;~ _GDIPlus_GraphicsDrawString($_Progress_Bars[$ID][5],$prc & " %",Ceiling(($bar_width/2)-15),Ceiling(($bar_height/2)-5))
    _GDIPlus_GraphicsDrawImage($_Progress_Bars[$ID][3], $_Progress_Bars[$ID][4], 0, 0)

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

    EndFunc ;==>_ProgressRefreshMarquee

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

    ; Author(s): Prog@ndy
    Func _DrawStringCenter(ByRef $hGraphic, $sString, $bar_width, $bar_height, $FontFormat = "Arial|12|1|0xFF000000|0", $InverseStart = -1)
    $FontFormat = StringSplit($FontFormat, "|")
    If $InverseStart>-1 And $FontFormat[5]=1 Then
    DLLCall($ghGDIPdll, "int", "GdipSetClipRectI", "ptr", $hGraphic, "int", 0, "int", 0, "int", $InverseStart, "int", $bar_height, "int", 0)
    $FontFormat[4]= BitOr(0xFF000000,_InverseColor($FontFormat[4]))
    EndIf
    Local $hBrush = _GDIPlus_BrushCreateSolid($FontFormat[4])
    Local $hFormat = _GDIPlus_StringFormatCreate(0x0400)
    Local $hFamily = _GDIPlus_FontFamilyCreate($FontFormat[1])
    Local $hFont = _GDIPlus_FontCreate($hFamily, $FontFormat[2], $FontFormat[3])
    Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sString, $hFont, $tLayout, $hFormat)
    DllStructSetData($aInfo[0], "X", Int(($bar_width - DllStructGetData($aInfo[0], "Width")) / 2))
    DllStructSetData($aInfo[0], "Y", Int(($bar_height - DllStructGetData($aInfo[0], "Height")) / 2))
    _GDIPlus_GraphicsDrawStringEx($hGraphic, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
    If $InverseStart>-1 And $FontFormat[5]=1 Then DLLCall($ghGDIPdll, "int", "GdipSetClipRectI", "ptr", $hGraphic, "int", 0, "int", 0, "int", $bar_width, "int", $bar_height, "int", 0)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    EndFunc ;==>_DrawStringCenter

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

    ; Modified _Max() Function, directly included
    ; Author(s): Jeremy Landes <jlandes at landeserve dot com>
    Func _MyMax($nNum1, $nNum2)

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

    If Number($nNum1) > Number($nNum2) Then
    Return Number($nNum1)
    Else
    Return Number($nNum2)
    EndIf
    EndFunc ;==>_MyMax

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

    #EndRegion Colored Progressbar
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #Region Gradient
    ;===============================================================================
    ;
    ; Function Name: _Gradient($RGB_Color1 ,$RGB_Color2, $Count)
    ; Description:: Returns an Array of Gradient Colors
    ; Parameter(s): $RGB_Color1 : The Start-Color in RGB Hexadecimal
    ; $RGB_Color2 : The End-Color in RGB Hexadecimal
    ; $Count : The number of Colors in the Gradient
    ; Requirement(s):
    ; Return Value(s): An Array with the Colors
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;

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

    Func _Gradient($RGB_Color1, $RGB_Color2, $Count, $ARGB = False)
    Local $Color1_R, $Color1_G, $Color1_B, $Color2_R, $Color2_G, $Color2_B, $NeuCol_R, $NeuCol_G, $NeuCol_B
    $ARGB = StringLeft("FF", 2 * $ARGB)
    $Color1_R = BitAND(BitShift($RGB_Color1, 16), 0xff)
    $Color1_G = BitAND(BitShift($RGB_Color1, 8), 0xff)
    $Color1_B = BitAND($RGB_Color1, 0xff)

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

    $Color2_R = BitAND(BitShift($RGB_Color2, 16), 0xff)
    $Color2_G = BitAND(BitShift($RGB_Color2, 8), 0xff)
    $Color2_B = BitAND($RGB_Color2, 0xff)

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

    $Count -= 1 ; 0-basiert !
    Dim $arColors[$Count + 1], $pos1

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

    For $i = 0 To $Count
    $pos1 = $Count - $i
    $NeuCol_R = ($Color1_R * $pos1 + $Color2_R * $i) / ($Count)
    $NeuCol_G = ($Color1_G * $pos1 + $Color2_G * $i) / ($Count)
    $NeuCol_B = ($Color1_B * $pos1 + $Color2_B * $i) / ($Count)
    $arColors[$i] = Execute('0x' & $ARGB & Hex(Int($NeuCol_R), 2) & Hex(Int($NeuCol_G), 2) & Hex(Int($NeuCol_B), 2))
    Next
    Return $arColors
    EndFunc ;==>_Gradient

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

    ;Hilfsfunktion für doppelten Verlauf
    ; Author(s): Prog@ndy
    Func _ZwischenGrad($RGB_c, $ARGB = False)
    Local $c_R = BitAND(BitShift($RGB_c, 16), 0xff)
    Local $c_G = BitAND(BitShift($RGB_c, 8), 0xff)
    Local $c_B = BitAND($RGB_c, 0xff)
    $c_R = _MyMax(0, $c_R - 99)
    $c_G = _MyMax(0, $c_G - 99)
    $c_B = _MyMax(0, $c_B - 99)
    If $ARGB Then Return Dec("FF" & Hex(Int($c_R), 2) & Hex(Int($c_G), 2) & Hex(Int($c_B), 2))
    Return Dec(Hex(Int($c_R), 2) & Hex(Int($c_G), 2) & Hex(Int($c_B), 2))
    EndFunc ;==>_ZwischenGrad

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

    ; Author(s): Prog@ndy
    Func _CreateGradientImg(ByRef $bmpfront, $w, $h, $startRGB, $endRGB)
    Local $graph_front = _GDIPlus_ImageGetGraphicsContext($bmpfront)
    Local $hPen = _GDIPlus_PenCreate(0, 1)
    Local $Wechsel = Round((9 / 20) * $h)
    Local $temp = _Gradient($startRGB, $endRGB, 3)
    $temp = _ZwischenGrad($temp[1], 0)
    Local $Gradient = _Gradient($startRGB, $temp, $Wechsel, 1)
    Local $Gradient2 = _Gradient($temp, $endRGB, $h - $Wechsel, 1)
    Local $PenColor
    For $i = 0 To $h - 1
    If $i < $Wechsel Then
    $PenColor = $Gradient[$i]
    Else
    $PenColor = $Gradient2[$i - $Wechsel]
    EndIf
    _GDIPlus_PenSetColor($hPen, $PenColor)
    _GDIPlus_GraphicsDrawLine($graph_front, 0, $i, $w, $i, $hPen)
    Next
    _GDIPlus_PenSetColor($hPen, 0xFF666666)
    ;~ _GDIPlus_GraphicsDrawRect($graph_front, 0, 0, $w, $h, $hPen)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($graph_front)
    EndFunc ;==>_CreateGradientImg

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

    #EndRegion Gradient
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #Region Internal
    ; Internal Function, do not use !
    Func _Paint_Bars_Procedure($hWnd, $nMsg, $wParam, $lParam)
    For $i = 1 To UBound($_Progress_Bars) - 1
    If Not ($_Progress_Bars[$i][0] = -1) Then _ProgressRefresh($i);
    Next
    EndFunc ;==>_Paint_Bars_Procedure

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

    ; Internal Function, do not use !
    ; Author(s): Prog@ndy
    Func _Progress_CallBack_Init($ForceReInit = False)
    Local $sFuncName = "_Paint_Bars_Procedure", $iTime = 50, $sParam = "hwnd;int;int;dword"
    $_Progress_ahCallBack[2] += 1
    If $_Progress_ahCallBack[2] > 1 And Not $ForceReInit Then Return True
    If $ForceReInit Then
    Local $temp = $_Progress_ahCallBack[2]
    _Progress_CallBack_Free(1)
    $_Progress_ahCallBack[2] = $temp
    EndIf
    Local $hCallBack = DllCallbackRegister("_Paint_Bars_Procedure", "int", $sParam)

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

    Local $aTimer = DllCall("user32.dll", "uint", "SetTimer", _
    "hwnd", 0, "uint", 0, "int", $iTime, "ptr", DllCallbackGetPtr($hCallBack))

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

    $_Progress_ahCallBack[0] = $hCallBack
    $_Progress_ahCallBack[1] = $aTimer[0]

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

    Return True
    EndFunc ;==>_Progress_CallBack_Init

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

    ; Internal Function, do not use !
    ; Author(s): Prog@ndy
    Func _Progress_CallBack_Free($Force = False)
    $_Progress_ahCallBack[2] -= 1
    If $_Progress_ahCallBack[2] < 0 Then
    $_Progress_ahCallBack[2] = 0
    Return
    EndIf
    If (Not $Force) And ($_Progress_ahCallBack[2] > 0) Then Return
    ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
    ConsoleWrite("! $Force" & $Force & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("!----------------------------------" & @CRLF)
    If $_Progress_ahCallBack[1] <> -1 Then DllCall("user32.dll", "int", "KillTimer", "hwnd", 0*ConsoleWrite("KILL" & @CRLF) , "uint", $_Progress_ahCallBack[1])
    ConsoleWrite("!DEBUG after Kill TImer" & @CRLF)
    ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
    ConsoleWrite("! $Force" & $Force & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("!----------------------------------" & @CRLF)
    If $_Progress_ahCallBack[0] <> -1 Then DllCallbackFree($_Progress_ahCallBack[0])
    ConsoleWrite("!DEBUG after Free callback" & @CRLF)
    ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
    ConsoleWrite("! $Force" & $Force & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("!----------------------------------" & @CRLF)
    $_Progress_ahCallBack[0] = -1
    $_Progress_ahCallBack[1] = -1
    $_Progress_ahCallBack[2] = 0
    ConsoleWrite("!DEBUG after Var REset" & @CRLF)
    ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
    ConsoleWrite("! $Force" & $Force & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
    ConsoleWrite("!----------------------------------" & @CRLF)
    EndFunc ;==>_Progress_CallBack_Free

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

    ;~ Func _DebugPrint($s_text)
    ;~ $s_text = StringReplace($s_text, @LF, @LF & "-")
    ;~ ConsoleWrite($s_text & @LF); & _
    ;~ EndFunc ;==>_DebugPrint

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

    Func __CheckForGDIPlus($Fatal = True)
    Local $x = DllOpen("GDIPlus.dll")
    Local $ret = DllCall("Kernel32.dll", "dword", "GetModuleHandle", "str", "GDIPlus")
    DllClose($x)
    If $ret[0] = 0 And $Fatal Then _WinAPI_FatalAppExit("GDIplus not found. Please install GDIplus to use this application")
    Return ($ret[0] = 0)
    EndFunc ;==>__CheckForGDIPlus

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

    #EndRegion Internal
    ;-------------------------------------------------------------------

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

    Func _InverseColor($Col)
    $Col = Number($Col)
    Local $a = BitAND($Col,0xFF)
    Local $b = BitAND(BitShift($Col,8),0xFF)
    Local $c = BitAND(BitShift($Col,16),0xFF)
    Return BitOR(BitShift(255-$c,-16), BitShift(255-$b,-8), 255-$a)
    EndFunc

    [/autoit]
  • hilfe mit "GUICtrlCreatePic"

    • funkey
    • 23. Juli 2012 um 19:17

    Vertausche mal die zwei Zeilen. Vllt hilft das.

  • GDIpProgress wird falsch dargestellt

    • funkey
    • 21. Juli 2012 um 01:57

    Hab's jetzt extra runtergeladen. Meinst du den Rahmen um die Progressbar?
    Dann entferne folgende Zeile aus der Funktion _CreateGradientImg()

    [autoit]

    _GDIPlus_GraphicsDrawRect($graph_front, 0, 0, $w, $h, $hPen)

    [/autoit]
  • GDIpProgress wird falsch dargestellt

    • funkey
    • 20. Juli 2012 um 23:26

    Hab mir die UDF nicht angeschaut, aber du musst sicher alle Hex() in Hex(Int()) umschreiben.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™