• Offizieller Beitrag

    Mega-Cool! :thumbup:

    Das ist es! :thumbup:

    Ich mußte bei mir nur noch drei Zeilen ändern (Schönheitsreparatur):

    Zeile 30:

    [autoit]


    Global $hider = GUICtrlCreateLabel(_StringRepeat(":: ", $aFDrive[0] * 4),0,0,5,10 + $aFDrive[0] * 50)

    [/autoit]


    Include <string.au3> haben wir ja sowieso schon

    Zeile 37:

    [autoit]


    GUICtrlSetFont(-1,9,500,0,"Arial")

    [/autoit]


    Das ist die Zeile mit 'von xxx GB'. Dort stehen bei mir sonst nur ein paar Striche.

    und Zeile 49:

    [autoit]


    Dim $aExit = GUICtrlCreateLabel("X",327,0,13,13,$ES_CENTER) ; Label als Exit-Button

    [/autoit]


    Dann ist das 'X' nicht so eingezwängt. ;)

    Man könnte nun vielleicht noch über die 'Warn'-Farben bei <60% und <40% streiten. Bei mir zeigt er 'bedrohliche' 15,45% auf D: an, obwohl diese 15% ja noch 55 GB ausmachen. ;)

    Aber das kann ja auch jeder für sich einstellen. Soll Deine Leistung auf keinen Fall schmälern.

    Wirklich klasse gemacht! :thumbup:


    Edit: Wir haben ja #NoTrayIcon eingefügt, um das TrayIcon wegzukriegen. Soweit so gut. Mir wäre es nun noch ganz lieb, wenn auch der Eintrag in der Taskleiste weg wäre. Geht das irgendwie?
    Edit2: Problem gelöst in Zeile 28:

    [autoit]


    Global $GUI = GUICreate('SpaceBar v 2.0', 340, 8 + $aFDrive[0] * 50, @DesktopWidth - 340, 27, $WS_POPUPWINDOW, BitOr($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))

    [/autoit]

    P.S.: Habe das Script für mich mal angepasst, damit es mit dem Zune-Desktop-Theme gut aussieht:

    Toolbox.au3

  • @pee: Wie anders herum? Ich habe kein Vista. Das ist doch schon eine Füllstandsanzeige!? Oder meinst du das es um 90° gedreht werden soll (andersherum sind bei mir 180°), und dann der Speicherplatz so wie Wasser in dem (Füllstandsbalken) Glas (mir ist kein besserer Vergleich eingefallen).

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

  • Hier mit Progressbar 100% -> voll
    Außerdem: Festplatte kleiner 21 GB -> 'Warn'-Farben bei <60% und <40%
    ..............Festplatte größer -> 'Warn'-Farben bei <5GB und <10GB

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    ; by Ritzelrocker04, Xenobiologist and Oscar
    Opt('MustDeclareVars', 1)
    ;[Includes]
    #include<Array.au3>
    #include<GUIConstants.au3>
    #include<String.au3>

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

    #cs
    $reshacker = FileOpenDialog("Resource-Hacker suchen",@ScriptDir,"reshacker.exe")
    $Temp = FileRead("D:\Dokumente\Dateien von Andreas\Downloads\Resource Hacker\d.txt")
    $delete = @CRLF & ' <!-- Identify the application dependencies. -->' & @CRLF _
    &@TAB & '<dependency>' & @CRLF _
    &@TAB & @TAB & '<dependentAssembly>' & @CRLF _
    &@TAB & @TAB & @TAB & '<assemblyIdentity' & @CRLF _
    &@TAB & @TAB & @TAB & @TAB & 'type="win32"' & @CRLF _
    &@TAB & @TAB & @TAB & @TAB & 'name="Microsoft.Windows.Common-Controls"' & @CRLF _
    &@TAB & @TAB & @TAB & @TAB & 'version="6.0.0.0"' & @CRLF _
    &@TAB & @TAB & @TAB & @TAB & 'language="*"' & @CRLF _
    &@TAB & @TAB & @TAB & @TAB & 'processorArchitecture="*"' & @CRLF _
    &@TAB & @TAB & @TAB & @TAB & 'publicKeyToken="6595b64144ccf1df"' & @CRLF _
    &@TAB & @TAB & @TAB & '/>' & @CRLF _
    &@TAB & @TAB & '</dependentAssembly>' & @CRLF _
    &@TAB & '</dependency>' & @CRLF
    $Temp = StringReplace($Temp,$delete,"")
    MsgBox(0,"",@error)
    $file = FileOpen("D:\Dokumente\Dateien von Andreas\Downloads\Resource Hacker\d.txt",2)
    FileWrite($file,$Temp)
    FileClose($file)
    Exit
    #ce

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

    If Not IsDeclared("Range") Then Const $Range = 100
    If Not IsDeclared("WM_MOVING") Then Const $WM_MOVING = 0x0216
    If Not IsDeclared("WM_ENTERSIZEMOVE") Then Const $WM_ENTERSIZEMOVE = 0x0231
    If Not IsDeclared("WM_LBUTTONDOWN") Then Global Const $WM_LBUTTONDOWN = 0x0201
    If Not IsDeclared("WM_SYSCOMMAND") Then Const $WM_SYSCOMMAND = 0x112
    If Not IsDeclared("WM_RBUTTONDOWN") Then Global Const $WM_RBUTTONDOWN = 0x0204

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

    Global $taskbarPos = WinGetPos("[CLASS:Shell_TrayWnd]"), $x_start, $y_start

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

    Global $aFDrive = DriveGetDrive('FIXED'), $aNDrive = DriveGetDrive('NETWORK')
    If IsArray($aNDrive) Then
    For $i = 1 To $aNDrive[0]
    _ArrayAdd($aFDrive, $aNDrive[$i])
    $aFDrive[0] += 1
    Next
    EndIf

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

    Global $aProgress[$aFDrive[0]], $aName[$aFDrive[0]], $msg = 0, $aVol = 0, $aProzent[$aFDrive[0]], $aGB[$aFDrive[0]]
    Global $aZwischenspeicher[$aFDrive[0]]
    Global $GUI = GUICreate('SpaceBar v 2.0', 340, 8 + $aFDrive[0] * 50, @DesktopWidth - 340, 27, $WS_POPUP+$WS_BORDER, $WS_EX_TOPMOST)
    GUICtrlCreatePic(@ScriptDir & "\bg.png",0,0,500,500)
    Global $Colors = _Gradient(0x00CC00,0x00FF00, $aFDrive[0]*2)
    Global $hider = GUICtrlCreateLabel(_StringRepeat(":: ", $aFDrive[0] * 4),0,0,5,10 + $aFDrive[0] * 50)
    Dim $k = 0
    For $i = 0 To $aFDrive[0] - 1
    $aProgress[$i] = _ProgressCreate(10, 8 + $i * 50, 230, 20,0xAAAA00,0xFF0000,$Colors[$k],$Colors[$k+1])
    $aProzent[$i] = GUICtrlCreateLabel("", 250, 8 + $i * 50,70,20,$ES_RIGHT,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1,10,700,0,"Arial")
    $aGB[$i] = GUICtrlCreateLabel("", 250, 30 + $i * 50,70,20,$ES_RIGHT,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1,10,500,0,"Arial")
    $k+=2
    ;Func _ProgressCreate($x, $y,$w = 204, $h = 24,$Col=0xFFFF00,$BG=0xAAAA00,$GradCol=0x00FF00,$GradBG=0xFF0000)
    $aName[$i] = GUICtrlCreateInput('', 10, 30 + $i * 50, 230, 21, $ES_READONLY)
    Next
    Dim $aContext = GUICtrlCreateLabel(" ",250,10,230,-2 + $aFDrive[0] * 50,-1,$GUI_WS_EX_PARENTDRAG) ;Label for ContextMenu over the otherLabels
    GUICtrlSetState($aContext,$GUI_ONTOP)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    Global $trackmenu = GUICtrlCreateContextMenu($aContext)
    Global $aboutitem = GUICtrlCreateMenuItem('About', $trackmenu)
    GUICtrlCreateMenuItem('', $trackmenu)
    Global $exititem = GUICtrlCreateMenuItem('Exit', $trackmenu)
    Dim $aExit = GUICtrlCreateLabel("X",329,0,11,11,$ES_CENTER) ; Label als Exit-Button
    GUICtrlSetBkColor(-1,0xDD0000)
    GUICtrlSetColor(-1,0xFFFFFF)
    GUICtrlSetFont(-1,-1,600)
    GUIRegisterMsg($WM_RBUTTONDOWN, "_RightClick") ; Funktion, um das KontextMenu des Labels auch von der Gui aus aufzurufen
    GUIRegisterMsg($WM_LBUTTONDOWN, "_WinMove") ; Funktion, um das Fenster zu bewegen
    GUIRegisterMsg($WM_ENTERSIZEMOVE, "On_WM_ENTERSIZEMOVE") ; Docking
    GUIRegisterMsg($WM_MOVING, "On_WM_MOVING") ; Docking
    GUISetState()

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

    _Update()
    AdlibEnable('_Update', 4000) ; Empfehlung AdlibEnable('_Update', 300000) = 5min
    Dim $hidden = 0
    While 1
    $msg = GUIGetMsg()
    If $msg = $exititem Or $msg = -3 Or $msg = -1 Or $msg = $aExit Then Exit (0)
    If $msg = $hider Then
    If $hidden Then
    WinMove($gui,"",@DesktopWidth-340,Default)
    Else
    WinMove($gui,"",@DesktopWidth-5,Default)
    EndIf
    $hidden = Not $hidden
    EndIf
    If $msg = $aboutitem Then MsgBox(64, 'About', 'SpaceBar v 2.0.0.0 Build 2007-12-23 ' & @CRLF & '' & @CRLF & 'Copyright by :' & @CRLF & 'Ritzelrocker04, Oscar, Xenobiologist ' & @CRLF & 'Thx an das http://www.Autoit.de Team ')
    WEnd

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

    Func _Update()
    For $i = 0 To $aFDrive[0] - 1
    $aVol = _DriveFree($aFDrive[$i + 1])
    If $aZwischenspeicher[$i] = $aVol[2] Then ContinueLoop
    $aZwischenspeicher[$i] = $aVol[2]
    ;_GuiCtrlOCXProgressSetValue($aProgress[$i], $aVol[0])
    GUICtrlSetData($aProzent[$i],StringReplace((100-$aVol[0]),".",",") & "% frei")
    If $aVol[3]/1024 < 20.9 Then
    Select
    Case $aVol[0] >= 60
    GUICtrlSetColor($aProzent[$i],0xDD0000)
    Case $aVol[0] < 60 And $aVol[0] > 40
    GUICtrlSetColor($aProzent[$i],0xEE8800)
    Case $aVol[0] <= 40
    GUICtrlSetColor($aProzent[$i],0x00CC00)
    EndSelect
    Else
    Select
    Case Round(Number($aVol[2])/1024) < 5
    GUICtrlSetColor($aProzent[$i],0xDD0000)
    Case Round(Number($aVol[2])/1024) <= 10
    GUICtrlSetColor($aProzent[$i],0xEE8800)
    Case Else
    GUICtrlSetColor($aProzent[$i],0x00CC00)
    EndSelect
    EndIf
    GUICtrlSetData($aGB[$i],"von " & StringReplace(Round(($aVol[3]/1024),1),".",",") & "GB")
    ;_ProgressSet($aProgress[$i], 100-Number($aVol[0])) ;100% = alles frei
    _ProgressSet($aProgress[$i], Number($aVol[0])) ;100% = alles voll
    If @error Then MsgBox(0, $aVol[0], @error)
    GUICtrlSetData($aName[$i], 'Auf ' & $aVol[1] & ' sind ' & _StringAddComma(StringReplace($aVol[2],".",","),".",",") & ' MB frei')

    Next
    EndFunc ;==>_Update

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

    Func _DriveFree($LW)
    Local $TOTAL = DriveSpaceTotal($LW), $FREE = DriveSpaceFree($LW), $aDrive[4] = [(Round(($TOTAL - $FREE) / ($TOTAL / 100), 2)), _
    StringUpper($LW) & ' (' & DriveGetLabel($LW) & ')', Round($FREE, 2), $TOTAL]
    Return $aDrive
    EndFunc ;==>_DriveFree

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

    ;-------------------------------------------------------------------
    #region Moving and Docking
    Func _WinMove($HWnd, $Command, $wParam, $lParam)
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG
    DllCall("user32.dll", "long", "SendMessage", "hwnd", $HWnd, "int", $WM_SYSCOMMAND, "int", 0xF009, "int", 0)
    EndFunc ;==>_WinMove

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

    ; Author: Xenobiologist (Mega)
    Func On_WM_ENTERSIZEMOVE()
    Local $aMPos = MouseGetPos()
    $x_start = $aMPos[0]
    $y_start = $aMPos[1]
    EndFunc ;==>On_WM_ENTERSIZEMOVE

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

    ; Author: Xenobiologist (Mega)
    Func On_WM_MOVING($hWnd, $Msg, $wParam, $lParam)
    Local $aMPos = MouseGetPos()
    Local $rect = DllStructCreate("long left; long top; long right; long bottom", $lParam)
    Local $left = DllStructGetData($rect, "left")
    Local $top = DllStructGetData($rect, "top")
    Local $right = DllStructGetData($rect, "right")
    Local $bottom = DllStructGetData($rect, "bottom")
    If $left <= $Range And $aMPos[0] < $x_start Then
    DllStructSetData($rect, "left", 0)
    DllStructSetData($rect, "right", $right - $left)
    EndIf
    If $top <= $Range And $aMPos[1] < $y_start Then
    DllStructSetData($rect, "top", 0)
    DllStructSetData($rect, "bottom", $bottom - $top)
    EndIf
    If $right >= (@DesktopWidth - $Range) And $aMPos[0] > $x_start Then
    DllStructSetData($rect, "right", @DesktopWidth)
    DllStructSetData($rect, "left", (@DesktopWidth - $right) + $left)
    EndIf
    If $bottom >= ($taskbarPos[1] - $Range) And $aMPos[1] > $y_start Then
    DllStructSetData($rect, "bottom", $taskbarPos[1])
    DllStructSetData($rect, "top", ($taskbarPos[1] - $bottom) + $top)
    EndIf
    On_WM_ENTERSIZEMOVE()
    EndFunc ;==>On_WM_MOVING
    #endregion
    ;-------------------------------------------------------------------

    [/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)
    Dim $Color1_R, $Color1_G, $Color1_B, $Color2_R, $Color2_G, $Color2_B, $NeuCol_R, $NeuCol_G, $NeuCol_B

    $Color1_R = BitAND( BitShift($RGB_Color1, 16), 0xff)
    $Color1_G = BitAND( BitShift($RGB_Color1, 8), 0xff)
    $Color1_B = BitAND($RGB_Color1, 0xff)

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

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

    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" & Hex($NeuCol_R,2) & Hex($NeuCol_G,2) & Hex($NeuCol_B,2))
    Next
    Return $arColors
    EndFunc
    #endregion
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #region Colored Progressbar

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

    ;Hilfsfunktion für doppelten Verlauf
    ; Author(s): Prog@ndy
    Func _ZwischenGrad($RGB_c)
    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)
    Return Dec(Hex($c_R,2) & Hex($c_G,2) & Hex($c_B,2))
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressCreate($x, $y,$w = 204, $h = 24,$Col=0xFFFF00,$GradCol=0x00FF00,$BG=0xAAAA00,$GradBG=0xFF0000)
    Local $ID[8]
    $ID[0] = GUICtrlCreateGraphic($x,$y,$w,$h)
    Local $error = @error
    Local $extended = @extended
    $ID[1] = $w
    $ID[2] = $h
    If $Col = -1 Then $Col=0xFFFF00
    If $BG = -1 Then $BG=0xAAAA00
    If $GradCol = -1 Then $GradCol=0x00FF00
    If $GradBG = -1 Then $GradBG=0xFF0000
    $ID[3] = $Col
    $ID[4] = $BG
    $ID[5] = $GradCol
    $ID[6] = $GradBG
    _ProgressSet($ID,0)
    Return SetError($error,$extended,$ID)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressDelete(ByRef $ID)
    If Not IsArray($ID) Or UBound($ID) <> 8 Then Return SetError(1,0,0)
    $ID[1] = -1
    $ID[2] = -1
    $ID[3] = -1
    $ID[4] = -1
    $ID[5] = -1
    $ID[6] = -1
    $ID[7] = -1
    Dim $temp = GUICtrlDelete($ID[0])
    Return SetError(@error,0,$temp)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressSetColors(ByRef $ID,$Col,$BG=-1,$GradCol=-1,$GradBG=-1)
    If Not IsArray($ID) Or UBound($ID) <> 8 Then Return SetError(1,0,0)
    $ID[3] = $Col
    If $BG <> -1 Then $ID[4] = $BG
    If $GradCol <> -1 Then $ID[5] = $GradCol
    If $GradBG <> -1 Then $ID[6] = $GradBG
    MsgBox(0,$ID[6],$ID[7])
    _ProgressSet($ID,$ID[7])
    Return SetError(@error,0,@error)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressSet(ByRef $ID, $value)
    Local $Wechsel = Round((9/20)*$ID[2]-4)
    Local $Hoehe = $ID[2]-4
    Local $Breite = $ID[1]-4

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


    If $value <= $ID[7] Then
    GUICtrlSetBkColor($ID[0],0xAAAAAA)
    GUICtrlSetColor($ID[0],0x777777)
    $ID[7] = $value
    Local $temp = _ZwischenGrad($ID[6])
    Local $Gradient = _Gradient($ID[4],$temp, $Wechsel)
    Local $Gradient2 = _Gradient($temp,$ID[6], $Hoehe-$Wechsel)
    For $i = 2 To $Wechsel+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient[$i-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, 2,$i,$Breite,1)
    Next
    For $i = $Wechsel+2 To $Hoehe+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient2[$i-$Wechsel-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, 2,$i,$Breite,1)
    Next
    Local $start = 2
    Else
    Local $start = $ID[7]+2
    $ID[7] = $value
    EndIf

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

    Local $Faktor = $Breite/100
    $value *= $Faktor
    If Round($value) >= $Breite Then $value = $Breite
    Local $temp = _ZwischenGrad($ID[5])
    Local $Gradient = _Gradient($ID[3],$temp, $Wechsel)
    Local $Gradient2 = _Gradient($temp,$ID[5], $Hoehe-$Wechsel)
    ;Local $Gradient = _Gradient(0xFFFF00,0x00AA00, $Wechsel)
    ;Local $Gradient2 = _Gradient(0x00AA00,0x00FF00, $Hoehe-$Wechsel)
    For $i = 2 To $Wechsel+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient[$i-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, $start,$i,$value-$start+2,1)
    Next
    For $i = $Wechsel+2 To $Hoehe+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient2[$i-$Wechsel-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, $start,$i,$value-$start+2,1)
    Next

    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,0xCCCCCC)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 2,2)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 2,$Hoehe+1);19)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+1,2)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+1,$Hoehe+1)
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,0xEEEEEE)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 0,$Hoehe+3)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 0,0)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+3,$Hoehe+3)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+3,0)

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

    GUICtrlSetGraphic($ID[0],$GUI_GR_REFRESH)

    EndFunc

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

    ; Original _Max() Function, directly included
    ; Author(s): Jeremy Landes <jlandes at landeserve dot com>
    Func _MyMax($nNum1, $nNum2)
    ; Check to see if the parameters are indeed numbers of some sort.
    If (Not IsNumber($nNum1)) Then
    SetError(1)
    Return (0)
    EndIf
    If (Not IsNumber($nNum2)) Then
    SetError(2)
    Return (0)
    EndIf

    If $nNum1 > $nNum2 Then
    Return $nNum1
    Else
    Return $nNum2
    EndIf
    EndFunc ;==>_Max

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

    #endregion
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #region Context Menu Handlers
    Func _RightClick($HWnd, $Command, $wParam, $lParam)
    ShowMenu($hWnd,$trackmenu,$aContext,1)
    EndFunc

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

    ;Author: MsCreatoR in http://www.autoitscript.com/forum/index.ph…ndpost&p=453350
    ;Modified from Help
    ; Show a menu in a given GUI window which belongs to a given GUI ctrl
    Func ShowMenu($hWnd, $nContextID, $nContextControlID, $iMouse=0)
    Local $hMenu = GUICtrlGetHandle($nContextID)
    Local $iCtrlPos = ControlGetPos($hWnd, "", $nContextControlID)

    Local $X = $iCtrlPos[0]
    Local $Y = $iCtrlPos[1] + $iCtrlPos[3]

    ClientToScreen($hWnd, $X, $Y)

    If $iMouse Then
    $X = MouseGetPos(0)
    $Y = MouseGetPos(1)
    EndIf

    DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $X, "int", $Y, "hwnd", $hWnd, "ptr", 0)
    EndFunc

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

    ; Convert the client (GUI) coordinates to screen (desktop) coordinates
    ;From Help
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate("int;int")

    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)

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

    DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))

    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
    EndFunc
    #endregion
    ;-------------------------------------------------------------------

    [/autoit]
  • Hi Progandy,
    bei nur 416 Zeilen muss ich erst einmal nachsehen, ob ich genug HDD-Platz habe (Scherz)? :D
    Es sieht jetzt richtig gut aus und macht auch einen stabilen Eindruck, auch die Warnungen sind Super. Eine klasse Arbeit, da kann Er stolz sein und ich ein bisschen neidisch. :thumbup: Die Zeile 98 habe ich ergänzt, kann Er ja noch nachholen.

    Spoiler anzeigen
    [autoit]


    If $msg = $aboutitem Then MsgBox(64, 'About', 'SpaceBar v 3.0.0.0 Build 2007-12-18/28 ' & @CRLF & '' & @CRLF & 'In Zusammenarbeit mit: ' & @CRLF & 'Ritzelrocker04, Oscar, Xenobiologist ' & @CRLF & 'Peethebee, Progandy ' & @CRLF & 'Thx an das http://www.Autoit.de Team ')

    [/autoit]


    Schöne Feiertage und weiterhin
    viel Erfolg!

    Man liest sich...
    Euer Ritzelrocker04

    • Offizieller Beitrag

    Ich habe noch ein paar kleine Änderungen vorgenommen:

    Die Y-Position des Fensters wird jetzt in einer INI-Datei gespeichert, damit das Fenster beim nächsten Start wieder genau dorthin gesetzt wird.
    Außerdem kann man nun im Kontextmenü einstellen, ob das Fenster beim Start versteckt (eingeschoben) werden soll (Hide on Start). Dieser Wert wird ebenfalls in der INI-Datei gespeichert.

    Und noch ein paar farbliche Anpassungen, weil ich das Zune-Desktop-Theme habe. :)
    Wer's nicht mag, kann die Farben ja entsprechend anpassen. Habe die Stellen mal kommentiert.

    Spoiler anzeigen
    [autoit]


    ; by Ritzelrocker04, Xenobiologist and Oscar
    #NoTrayIcon
    Opt('MustDeclareVars', 1)
    ;[Includes]
    #include<Array.au3>
    #include<GUIConstants.au3>
    #include<String.au3>

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

    If Not IsDeclared('Range') Then Const $Range = 100
    If Not IsDeclared('WM_MOVING') Then Const $WM_MOVING = 0x0216
    If Not IsDeclared('WM_ENTERSIZEMOVE') Then Const $WM_ENTERSIZEMOVE = 0x0231
    If Not IsDeclared('WM_LBUTTONDOWN') Then Global Const $WM_LBUTTONDOWN = 0x0201
    If Not IsDeclared('WM_SYSCOMMAND') Then Const $WM_SYSCOMMAND = 0x112
    If Not IsDeclared('WM_RBUTTONDOWN') Then Global Const $WM_RBUTTONDOWN = 0x0204

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

    Global $taskbarPos = WinGetPos('[CLASS:Shell_TrayWnd]'), $x_start, $y_start

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

    Global $aFDrive = DriveGetDrive('FIXED'), $aNDrive = DriveGetDrive('NETWORK')
    If IsArray($aNDrive) Then
    For $i = 1 To $aNDrive[0]
    _ArrayAdd($aFDrive, $aNDrive[$i])
    $aFDrive[0] += 1
    Next
    EndIf
    Global $iPosY = IniRead(@ScriptDir & '\SpaceBar.ini', 'Pos', 'iPosY', 27)
    Global $bHide = IniRead(@ScriptDir & '\SpaceBar.ini', 'Pos', 'bHide', 1)

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

    Global $aProgress[$aFDrive[0]], $aName[$aFDrive[0]], $hidden = $bHide, $icon, $msg = 0, $aVol = 0, $aPos, $aProzent[$aFDrive[0]], $aGB[$aFDrive[0]]
    Global $aZwischenspeicher[$aFDrive[0]]
    Global $GUI = GUICreate('SpaceBar v 3.1', 380, 8 + $aFDrive[0] * 50, @DesktopWidth - 382, $iPosY, BitOr($WS_POPUP, $WS_BORDER), BitOr($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
    GUISetBKColor(0x444444); Hintergrundfarbe des Fensters

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

    ;GUICtrlCreatePic(@ScriptDir & '\bg.png',0,0,500,500)
    Global $Colors = _Gradient(0x00CC00,0x00FF00, $aFDrive[0]*2)
    Global $hider = GUICtrlCreateLabel(_StringRepeat(':: ', $aFDrive[0] * 4),0,0,6,10 + $aFDrive[0] * 50)
    GUICtrlSetBkColor(-1, 0xBBBBBB); Hintergrundfarbe der Seiten-Leiste
    Dim $k = 0
    For $i = 0 To $aFDrive[0] - 1
    If DriveGetType($aFDrive[$i+1]) = "Fixed" Then $icon = -9
    If DriveGetType($aFDrive[$i+1]) = "Network" Then $icon = -10
    GUICtrlCreateIcon(@SystemDir & "\shell32.dll", $icon, 12, 2 + $i * 50, 32, 32)
    $aProgress[$i] = _ProgressCreate(52, 8 + $i * 50, 230, 20,0xAAAA00,0xFF0000,$Colors[$k],$Colors[$k+1])
    $aProzent[$i] = GUICtrlCreateLabel('', 290, 8 + $i * 50,70,20,$ES_RIGHT,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1,9,700,0,'Arial')
    $aGB[$i] = GUICtrlCreateLabel('', 290, 30 + $i * 50,70,20,$ES_RIGHT,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1,8,800,0,'Arial')
    GUICtrlSetColor(-1, 0xBBBBBB); Farbe der GB-Zahl
    $k+=2
    ;Func _ProgressCreate($x, $y,$w = 204, $h = 24,$Col=0xFFFF00,$BG=0xAAAA00,$GradCol=0x00FF00,$GradBG=0xFF0000)
    $aName[$i] = GUICtrlCreateLabel('', 60, 30 + $i * 50, 230, 21, $ES_READONLY)
    GUICtrlSetFont(-1,8,800,0,'Arial')
    GUICtrlSetColor(-1, 0xBBBBBB); Farbe der Beschriftung unter der Progressbar
    Next
    Dim $aContext = GUICtrlCreateLabel(' ',290,10,230,-2 + $aFDrive[0] * 50,-1,$GUI_WS_EX_PARENTDRAG) ;Label for ContextMenu over the otherLabels
    GUICtrlSetState($aContext,$GUI_ONTOP)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    Global $trackmenu = GUICtrlCreateContextMenu($aContext)
    Global $aboutitem = GUICtrlCreateMenuItem('About', $trackmenu)
    Global $hideitem = GUICtrlCreateMenuItem('Hide on Start', $trackmenu, 3)
    If $bHide = 1 Then
    GUICtrlSetState($hideitem, $GUI_CHECKED)
    Else
    GUICtrlSetState($hideitem, $GUI_UNCHECKED)
    EndIf
    GUICtrlCreateMenuItem('', $trackmenu)
    Global $exititem = GUICtrlCreateMenuItem('Exit', $trackmenu)
    Dim $aExit = GUICtrlCreateLabel('X',367,0,13,13,$ES_CENTER) ; Label als Exit-Button
    GUICtrlSetBkColor(-1,0xDD4444)
    GUICtrlSetColor(-1,0xFFFFFF)
    GUICtrlSetFont(-1,-1,800)
    GUIRegisterMsg($WM_RBUTTONDOWN, '_RightClick') ; Funktion, um das KontextMenu des Labels auch von der Gui aus aufzurufen
    GUIRegisterMsg($WM_LBUTTONDOWN, '_WinMove') ; Funktion, um das Fenster zu bewegen
    GUIRegisterMsg($WM_ENTERSIZEMOVE, 'On_WM_ENTERSIZEMOVE') ; Docking
    GUIRegisterMsg($WM_MOVING, 'On_WM_MOVING') ; Docking

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

    _Update()
    AdlibEnable('_Update', 4000) ; Empfehlung AdlibEnable('_Update', 300000) = 5min
    If $bHide = 1 Then
    WinMove($gui,'',@DesktopWidth-8,Default)
    Else
    WinMove($gui,'',@DesktopWidth-382,Default)
    EndIf

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $exititem Or $msg = -3 Or $msg = -1 Or $msg = $aExit
    $aPos = WinGetPos('')
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Pos', 'iPosY', $aPos[1])
    Exit
    Case $msg = $hider
    If $hidden Then
    WinMove($gui,'',@DesktopWidth-382,Default)
    Else
    WinMove($gui,'',@DesktopWidth-8,Default)
    EndIf
    $hidden = Not $hidden
    Case $msg = $hideitem
    If $bHide = 1 Then
    GUICtrlSetState($hideitem, $GUI_UNCHECKED)
    $bHide = 0
    Else
    GUICtrlSetState($hideitem, $GUI_CHECKED)
    $bHide = 1
    EndIf
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Pos', 'bHide', $bHide)
    Case $msg = $aboutitem
    MsgBox(64, 'About', 'SpaceBar v 3.1.0.1 Build 2007-12-18/28 ' & @CRLF & '' & @CRLF & 'In Zusammenarbeit mit: ' & @CRLF & 'Ritzelrocker04, Oscar, Xenobiologist ' & @CRLF & 'Peethebee, Progandy ' & @CRLF & 'Thx an das http://www.Autoit.de Team ')
    EndSelect
    WEnd

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

    Func _Update()
    For $i = 0 To $aFDrive[0] - 1
    $aVol = _DriveFree($aFDrive[$i + 1])
    If $aZwischenspeicher[$i] = $aVol[2] Then ContinueLoop
    $aZwischenspeicher[$i] = $aVol[2]
    ;_GuiCtrlOCXProgressSetValue($aProgress[$i], $aVol[0])
    GUICtrlSetData($aProzent[$i],StringReplace((100-$aVol[0]),'.',',') & '% frei')
    If $aVol[3]/1024 < 20.9 Then
    Select
    Case $aVol[0] >= 60
    GUICtrlSetColor($aProzent[$i],0xDD0000)
    Case $aVol[0] < 60 And $aVol[0] > 40
    GUICtrlSetColor($aProzent[$i],0xEE8800)
    Case $aVol[0] <= 40
    GUICtrlSetColor($aProzent[$i],0x00CC00)
    EndSelect
    Else
    Select
    Case Round(Number($aVol[2])/1024) < 5
    GUICtrlSetColor($aProzent[$i],0xDD0000)
    Case Round(Number($aVol[2])/1024) <= 10
    GUICtrlSetColor($aProzent[$i],0xEE8800)
    Case Else
    GUICtrlSetColor($aProzent[$i],0x00CC00)
    EndSelect
    EndIf
    GUICtrlSetData($aGB[$i],'von ' & StringReplace(Round(($aVol[3]/1024),1),'.',',') & 'GB')
    ;_ProgressSet($aProgress[$i], 100-Number($aVol[0])) ;100% = alles frei
    _ProgressSet($aProgress[$i], Number($aVol[0])) ;100% = alles voll
    If @error Then MsgBox(0, $aVol[0], @error)
    GUICtrlSetData($aName[$i], 'Auf ' & $aVol[1] & ' sind ' & _StringAddComma(StringReplace($aVol[2],'.',','),'.',',') & ' MB frei')

    Next
    EndFunc ;==>_Update

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

    Func _DriveFree($LW)
    Local $TOTAL = DriveSpaceTotal($LW), $FREE = DriveSpaceFree($LW), $aDrive[4] = [(Round(($TOTAL - $FREE) / ($TOTAL / 100), 2)), _
    StringUpper($LW) & ' (' & DriveGetLabel($LW) & ')', Round($FREE, 2), $TOTAL]
    Return $aDrive
    EndFunc ;==>_DriveFree

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

    ;-------------------------------------------------------------------
    #region Moving and Docking
    Func _WinMove($HWnd, $Command, $wParam, $lParam)
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG
    DllCall('user32.dll', 'long', 'SendMessage', 'hwnd', $HWnd, 'int', $WM_SYSCOMMAND, 'int', 0xF009, 'int', 0)
    EndFunc ;==>_WinMove

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

    ; Author: Xenobiologist (Mega)
    Func On_WM_ENTERSIZEMOVE()
    Local $aMPos = MouseGetPos()
    $x_start = $aMPos[0]
    $y_start = $aMPos[1]
    EndFunc ;==>On_WM_ENTERSIZEMOVE

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

    ; Author: Xenobiologist (Mega)
    Func On_WM_MOVING($hWnd, $Msg, $wParam, $lParam)
    Local $aMPos = MouseGetPos()
    Local $rect = DllStructCreate('long left; long top; long right; long bottom', $lParam)
    Local $left = DllStructGetData($rect, 'left')
    Local $top = DllStructGetData($rect, 'top')
    Local $right = DllStructGetData($rect, 'right')
    Local $bottom = DllStructGetData($rect, 'bottom')
    If $left <= $Range And $aMPos[0] < $x_start Then
    DllStructSetData($rect, 'left', 0)
    DllStructSetData($rect, 'right', $right - $left)
    EndIf
    If $top <= $Range And $aMPos[1] < $y_start Then
    DllStructSetData($rect, 'top', 0)
    DllStructSetData($rect, 'bottom', $bottom - $top)
    EndIf
    If $right >= (@DesktopWidth - $Range) And $aMPos[0] > $x_start Then
    DllStructSetData($rect, 'right', @DesktopWidth)
    DllStructSetData($rect, 'left', (@DesktopWidth - $right) + $left)
    EndIf
    If $bottom >= ($taskbarPos[1] - $Range) And $aMPos[1] > $y_start Then
    DllStructSetData($rect, 'bottom', $taskbarPos[1])
    DllStructSetData($rect, 'top', ($taskbarPos[1] - $bottom) + $top)
    EndIf
    On_WM_ENTERSIZEMOVE()
    EndFunc ;==>On_WM_MOVING
    #endregion
    ;-------------------------------------------------------------------

    [/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)
    Dim $Color1_R, $Color1_G, $Color1_B, $Color2_R, $Color2_G, $Color2_B, $NeuCol_R, $NeuCol_G, $NeuCol_B

    $Color1_R = BitAND( BitShift($RGB_Color1, 16), 0xff)
    $Color1_G = BitAND( BitShift($RGB_Color1, 8), 0xff)
    $Color1_B = BitAND($RGB_Color1, 0xff)

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

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

    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' & Hex($NeuCol_R,2) & Hex($NeuCol_G,2) & Hex($NeuCol_B,2))
    Next
    Return $arColors
    EndFunc
    #endregion
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #region Colored Progressbar

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

    ;Hilfsfunktion für doppelten Verlauf
    ; Author(s): Prog@ndy
    Func _ZwischenGrad($RGB_c)
    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)
    Return Dec(Hex($c_R,2) & Hex($c_G,2) & Hex($c_B,2))
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressCreate($x, $y,$w = 204, $h = 24,$Col=0xFFFF00,$GradCol=0x00FF00,$BG=0xAAAA00,$GradBG=0xFF0000)
    Local $ID[8]
    $ID[0] = GUICtrlCreateGraphic($x,$y,$w,$h)
    Local $error = @error
    Local $extended = @extended
    $ID[1] = $w
    $ID[2] = $h
    If $Col = -1 Then $Col=0xFFFF00
    If $BG = -1 Then $BG=0xAAAA00
    If $GradCol = -1 Then $GradCol=0x00FF00
    If $GradBG = -1 Then $GradBG=0xFF0000
    $ID[3] = $Col
    $ID[4] = $BG
    $ID[5] = $GradCol
    $ID[6] = $GradBG
    _ProgressSet($ID,0)
    Return SetError($error,$extended,$ID)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressDelete(ByRef $ID)
    If Not IsArray($ID) Or UBound($ID) <> 8 Then Return SetError(1,0,0)
    $ID[1] = -1
    $ID[2] = -1
    $ID[3] = -1
    $ID[4] = -1
    $ID[5] = -1
    $ID[6] = -1
    $ID[7] = -1
    Dim $temp = GUICtrlDelete($ID[0])
    Return SetError(@error,0,$temp)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressSetColors(ByRef $ID,$Col,$BG=-1,$GradCol=-1,$GradBG=-1)
    If Not IsArray($ID) Or UBound($ID) <> 8 Then Return SetError(1,0,0)
    $ID[3] = $Col
    If $BG <> -1 Then $ID[4] = $BG
    If $GradCol <> -1 Then $ID[5] = $GradCol
    If $GradBG <> -1 Then $ID[6] = $GradBG
    MsgBox(0,$ID[6],$ID[7])
    _ProgressSet($ID,$ID[7])
    Return SetError(@error,0,@error)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressSet(ByRef $ID, $value)
    Local $Wechsel = Round((9/20)*$ID[2]-4)
    Local $Hoehe = $ID[2]-4
    Local $Breite = $ID[1]-4

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


    If $value <= $ID[7] Then
    GUICtrlSetBkColor($ID[0],0xAAAAAA)
    GUICtrlSetColor($ID[0],0x777777)
    $ID[7] = $value
    Local $temp = _ZwischenGrad($ID[6])
    Local $Gradient = _Gradient($ID[4],$temp, $Wechsel)
    Local $Gradient2 = _Gradient($temp,$ID[6], $Hoehe-$Wechsel)
    For $i = 2 To $Wechsel+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient[$i-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, 2,$i,$Breite,1)
    Next
    For $i = $Wechsel+2 To $Hoehe+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient2[$i-$Wechsel-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, 2,$i,$Breite,1)
    Next
    Local $start = 2
    Else
    Local $start = $ID[7]+2
    $ID[7] = $value
    EndIf

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

    Local $Faktor = $Breite/100
    $value *= $Faktor
    If Round($value) >= $Breite Then $value = $Breite
    Local $temp = _ZwischenGrad($ID[5])
    Local $Gradient = _Gradient($ID[3],$temp, $Wechsel)
    Local $Gradient2 = _Gradient($temp,$ID[5], $Hoehe-$Wechsel)
    ;Local $Gradient = _Gradient(0xFFFF00,0x00AA00, $Wechsel)
    ;Local $Gradient2 = _Gradient(0x00AA00,0x00FF00, $Hoehe-$Wechsel)
    For $i = 2 To $Wechsel+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient[$i-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, $start,$i,$value-$start+2,1)
    Next
    For $i = $Wechsel+2 To $Hoehe+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient2[$i-$Wechsel-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, $start,$i,$value-$start+2,1)
    Next

    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,0xCCCCCC)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 2,2)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 2,$Hoehe+1);19)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+1,2)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+1,$Hoehe+1)
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,0xEEEEEE)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 0,$Hoehe+3)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 0,0)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+3,$Hoehe+3)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+3,0)

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

    GUICtrlSetGraphic($ID[0],$GUI_GR_REFRESH)

    EndFunc

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

    ; Original _Max() Function, directly included
    ; Author(s): Jeremy Landes <jlandes at landeserve dot com>
    Func _MyMax($nNum1, $nNum2)
    ; Check to see if the parameters are indeed numbers of some sort.
    If (Not IsNumber($nNum1)) Then
    SetError(1)
    Return (0)
    EndIf
    If (Not IsNumber($nNum2)) Then
    SetError(2)
    Return (0)
    EndIf

    If $nNum1 > $nNum2 Then
    Return $nNum1
    Else
    Return $nNum2
    EndIf
    EndFunc ;==>_Max

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

    #endregion
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #region Context Menu Handlers
    Func _RightClick($HWnd, $Command, $wParam, $lParam)
    ShowMenu($hWnd,$trackmenu,$aContext,1)
    EndFunc

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

    ;Author: MsCreatoR in http://www.autoitscript.com/forum/index.ph…ndpost&p=453350
    ;Modified from Help
    ; Show a menu in a given GUI window which belongs to a given GUI ctrl
    Func ShowMenu($hWnd, $nContextID, $nContextControlID, $iMouse=0)
    Local $hMenu = GUICtrlGetHandle($nContextID)
    Local $iCtrlPos = ControlGetPos($hWnd, '', $nContextControlID)

    Local $X = $iCtrlPos[0]
    Local $Y = $iCtrlPos[1] + $iCtrlPos[3]

    ClientToScreen($hWnd, $X, $Y)

    If $iMouse Then
    $X = MouseGetPos(0)
    $Y = MouseGetPos(1)
    EndIf

    DllCall('user32.dll', 'int', 'TrackPopupMenuEx', 'hwnd', $hMenu, 'int', 0, 'int', $X, 'int', $Y, 'hwnd', $hWnd, 'ptr', 0)
    EndFunc

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

    ; Convert the client (GUI) coordinates to screen (desktop) coordinates
    ;From Help
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate('int;int')

    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)

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

    DllCall('user32.dll', 'int', 'ClientToScreen', 'hwnd', $hWnd, 'ptr', DllStructGetPtr($stPoint))

    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
    EndFunc
    #endregion
    ;-------------------------------------------------------------------

    [/autoit]

    Edit: Eine Idee hatte ich noch als ich Pee's Screenshot betrachtete: Man könnte ja noch für jedes Laufwerk ein Icon anzeigen. Das habe ich mal erledigt. :)

    • Offizieller Beitrag

    @Xeno: Hmm...nettes Script, aber andere Baustelle. ;)

    Ich will ja ein Programm, das im Hintergrund (möglichst unauffällig) läuft und mir bei Bedarf die Festplatten-Speicherbelegung anzeigt.
    Das Tool aus dem engl. Forum ist eher so ein Laufwerks-Statusbericht. IMHO nicht vergleichbar.

    Screenshot von unserem Tool:
    Unbenannt.bmp

  • Hmm
    Ich finde, das sind ein paar Funktionen zu viel. Das sollte doch nur über den belegtn Platz informieren :) Da wird das ganze schon wieder unübersichtlich :D

    //Edit: Der Screen sieht toll aus, aber bei mir läufts net :( werder v.2.3.8.1 noch v1.3.10.0
    /edit: Ah, die Zeile war falsch:

    [autoit]

    Global $GUI = GUICreate('SpaceBar v 3.1', 380, 8 + $aFDrive[0] * 50, @DesktopWidth - 382, $iPosY, $WS_POPUP+$WS_BORDER, BitOr($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))

    [/autoit]

    Einmal editiert, zuletzt von progandy (28. Dezember 2007 um 18:57)

  • Ja, es läuft. Ich habe noch einen Optionen-Dialog hizugefügt :)

    Spoiler anzeigen
    [autoit]

    ; by Ritzelrocker04, Xenobiologist and Oscar and Prog@ndy
    #NoTrayIcon
    Opt('MustDeclareVars', 1)
    ;[Includes]
    #include<Array.au3>
    #include<GUIConstants.au3>
    #include<String.au3>
    #include <Misc.au3>

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

    If Not IsDeclared('Range') Then Const $Range = 100
    If Not IsDeclared('WM_MOVING') Then Const $WM_MOVING = 0x0216
    If Not IsDeclared('WM_ENTERSIZEMOVE') Then Const $WM_ENTERSIZEMOVE = 0x0231
    If Not IsDeclared('WM_LBUTTONDOWN') Then Global Const $WM_LBUTTONDOWN = 0x0201
    If Not IsDeclared('WM_SYSCOMMAND') Then Const $WM_SYSCOMMAND = 0x112
    If Not IsDeclared('WM_RBUTTONDOWN') Then Global Const $WM_RBUTTONDOWN = 0x0204

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

    Global $taskbarPos = WinGetPos('[CLASS:Shell_TrayWnd]'), $x_start, $y_start

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

    Global $bREMOVABLE = IniRead(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'REMOVABLE', False)
    Global $bFIXED = IniRead(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'FIXED', True)
    Global $bCDROM = IniRead(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'CDROM', False)
    Global $bNETWORK = IniRead(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'NETWORK', True)
    Global $bRAMDISK = IniRead(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'RAMDISK', False)

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

    Global $aFDrive[1]
    If Execute($bFIXED) Then $aFDrive = DriveGetDrive('FIXED')
    If Execute($bNETWORK) Then
    Dim $aNDrive = DriveGetDrive('NETWORK')
    If IsArray($aNDrive) Then
    For $i = 1 To $aNDrive[0]
    _ArrayAdd($aFDrive, $aNDrive[$i])
    $aFDrive[0] += 1
    Next
    EndIf
    EndIf
    If Execute($bREMOVABLE) Then
    Dim $aNDrive = DriveGetDrive('REMOVABLE')
    If IsArray($aNDrive) Then
    For $i = 1 To $aNDrive[0]
    If $aNDrive[$i] = "a:" Then ContinueLoop
    _ArrayAdd($aFDrive, $aNDrive[$i])
    $aFDrive[0] += 1
    Next
    EndIf
    EndIf
    If Execute($bCDROM) Then
    Dim $aNDrive = DriveGetDrive('CDROM')
    If IsArray($aNDrive) Then
    For $i = 1 To $aNDrive[0]
    _ArrayAdd($aFDrive, $aNDrive[$i])
    $aFDrive[0] += 1
    Next
    EndIf
    EndIf
    If Execute($bRAMDISK) Then
    Dim $aNDrive = DriveGetDrive('RAMDISK')
    If IsArray($aNDrive) Then
    For $i = 1 To $aNDrive[0]
    _ArrayAdd($aFDrive, $aNDrive[$i])
    $aFDrive[0] += 1
    Next
    EndIf
    EndIf

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

    Global $iPosY = IniRead(@ScriptDir & '\SpaceBar.ini', 'Pos', 'iPosY', 27)
    Global $bHide = IniRead(@ScriptDir & '\SpaceBar.ini', 'Pos', 'bHide', 1)
    Global $cGUIColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cGUIColor', 0x444444)
    Global $cBarColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cBarColor', 0xBBBBBB)
    Global $cGBColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cGBColor', 0xBBBBBB)
    Global $cTextColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cTextColor', 0xBBBBBB)
    Global $cTextBGColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cTextBGColor', 0x444444)
    Global $cWarnColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cWarnColor', 0xDD0000)
    Global $cAttentionColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cAttentionColor', 0xEE8800)
    Global $cOKColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cOKColor', 0x00CC00)
    Global $cCloseBGColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cCloseBGColor', 0xDD0000)
    Global $cCloseXColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cCloseXColor', 0xFFFFFF)
    Global $cProgressFrontColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressFrontColor', 0xAAAA00)
    Global $cProgressFrontGradColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressFrontGradColor', 0xFF0000)
    Global $cProgressBGColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressBGColor', 0x00CC00)
    Global $cProgressBGEndColor = IniRead(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressBGEndColor', 0x00FF00)

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

    Global $aProgress[$aFDrive[0]], $aName[$aFDrive[0]], $hidden = $bHide, $icon, $msg = 0, $aVol = 0, $aPos, $aProzent[$aFDrive[0]], $aGB[$aFDrive[0]]
    Global $aZwischenspeicher[$aFDrive[0]]
    Global $GUI = GUICreate('SpaceBar v 3.1', 380, 8 + $aFDrive[0] * 50, @DesktopWidth - 382, $iPosY, $WS_POPUP+$WS_BORDER, BitOr($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
    GUISetBKColor($cGUIColor); Hintergrundfarbe des Fensters

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

    ;GUICtrlCreatePic(@ScriptDir & '\bg.png',0,0,500,500)
    Global $Colors = _Gradient($cProgressBGColor,$cProgressBGEndColor, $aFDrive[0]*2)
    Global $hider = GUICtrlCreateLabel(_StringRepeat(':: ', $aFDrive[0] * 4),0,0,6,10 + $aFDrive[0] * 50)
    GUICtrlSetBkColor(-1, $cBarColor); Hintergrundfarbe der Seiten-Leiste
    Dim $k = 0
    For $i = 0 To $aFDrive[0] - 1
    If DriveGetType($aFDrive[$i+1]) = "RAMDisk" Then $icon = -13
    If DriveGetType($aFDrive[$i+1]) = "CDROM" Then $icon = -12
    If DriveGetType($aFDrive[$i+1]) = "Removable" Then $icon = -8
    If DriveGetType($aFDrive[$i+1]) = "Fixed" Then $icon = -9
    If DriveGetType($aFDrive[$i+1]) = "Network" Then $icon = -10
    GUICtrlCreateIcon(@SystemDir & "\shell32.dll", $icon, 12, 2 + $i * 50, 32, 32)
    $aProgress[$i] = _ProgressCreate(52, 8 + $i * 50, 230, 20,$cProgressFrontColor,$cProgressFrontGradColor,$Colors[$k],$Colors[$k+1])
    $aProzent[$i] = GUICtrlCreateLabel('', 290, 8 + $i * 50,70,20,$ES_RIGHT,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1,9,700,0,'Arial')
    $aGB[$i] = GUICtrlCreateLabel('', 290, 30 + $i * 50,70,20,$ES_RIGHT,$GUI_WS_EX_PARENTDRAG)
    GUICtrlSetFont(-1,8,800,0,'Arial')
    GUICtrlSetColor(-1, $cGBColor); Farbe der GB-Zahl
    $k+=2
    $aName[$i] = GUICtrlCreateInput('', 60, 30 + $i * 50, 230, 21, $ES_READONLY)
    GUICtrlSetFont(-1,8,800,0,'Arial')
    GUICtrlSetColor(-1, $cTextColor); Farbe der Beschriftung unter der Progressbar
    GUICtrlSetBkColor(-1, $cTextBGColor); Farbe des Hintergrundes der Beschriftung unter der Progressbar
    Next

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

    Dim $aContext = GUICtrlCreateLabel(' ',290,10,230,-2 + $aFDrive[0] * 50,-1,$GUI_WS_EX_PARENTDRAG) ;Label for ContextMenu over the otherLabels
    GUICtrlSetState($aContext,$GUI_ONTOP)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    Global $trackmenu = GUICtrlCreateContextMenu($aContext)
    Global $aboutitem = GUICtrlCreateMenuItem('About', $trackmenu)
    Global $optitem = GUICtrlCreateMenuItem('Optionen', $trackmenu)
    If $bHide = 1 Then
    ;GUICtrlSetState($hideitem, $GUI_CHECKED)
    Else
    ;GUICtrlSetState($hideitem, $GUI_UNCHECKED)
    EndIf
    GUICtrlCreateMenuItem('', $trackmenu)
    Global $exititem = GUICtrlCreateMenuItem('Exit', $trackmenu)
    Dim $aExit = GUICtrlCreateLabel('X',367,0,13,13,$ES_CENTER) ; Label als Exit-Button
    GUICtrlSetState($aExit,$GUI_ONTOP)
    GUICtrlSetBkColor(-1,0xDD4444)
    GUICtrlSetColor(-1,0xFFFFFF)
    GUICtrlSetFont(-1,-1,800)
    GUIRegisterMsg($WM_RBUTTONDOWN, '_RightClick') ; Funktion, um das KontextMenu des Labels auch von der Gui aus aufzurufen
    GUIRegisterMsg($WM_LBUTTONDOWN, '_WinMove') ; Funktion, um das Fenster zu bewegen
    GUIRegisterMsg($WM_ENTERSIZEMOVE, 'On_WM_ENTERSIZEMOVE') ; Docking
    GUIRegisterMsg($WM_MOVING, 'On_WM_MOVING') ; Docking

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

    _Update()
    AdlibEnable('_Update', 4000) ; Empfehlung AdlibEnable('_Update', 300000) = 5min

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

    If $bHide = 1 Then WinMove($gui,'',@DesktopWidth-7,Default)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $exititem Or $msg = -3 Or $msg = -1 Or $msg = $aExit
    $aPos = WinGetPos($GUI)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Pos', 'iPosY', $aPos[1])
    Exit
    Case $msg = $hider
    If $hidden Then
    WinMove($gui,'',@DesktopWidth-382,Default)
    Else
    WinMove($gui,'',@DesktopWidth-7,Default)
    EndIf
    $hidden = Not $hidden
    Case $msg = $optitem
    _OptionGUI()
    Case $msg = $aboutitem
    MsgBox(64, 'About', 'SpaceBar v 3.2.0.1 Build 2007-12-18/28 ' & @CRLF & '' & @CRLF & 'In Zusammenarbeit mit: ' & @CRLF & 'Ritzelrocker04, Oscar, Xenobiologist ' & @CRLF & 'Peethebee, Prog@ndy ' & @CRLF & 'Thx an das http://www.Autoit.de Team ')
    EndSelect
    WEnd

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

    Func _Update()
    For $i = 0 To $aFDrive[0] - 1
    $aVol = _DriveFree($aFDrive[$i + 1])
    If $aZwischenspeicher[$i] = $aVol[2] Then ContinueLoop
    $aZwischenspeicher[$i] = $aVol[2]
    GUICtrlSetData($aProzent[$i],StringReplace((100-$aVol[0]),'.',',') & '% frei')
    If $aVol[3]/1024 < 20.9 Then
    Select
    Case $aVol[0] >= 60
    GUICtrlSetColor($aProzent[$i],$cWarnColor)
    Case $aVol[0] < 60 And $aVol[0] > 40
    GUICtrlSetColor($aProzent[$i],$cAttentionColor)
    Case $aVol[0] <= 40
    GUICtrlSetColor($aProzent[$i],$cOKColor)
    EndSelect
    Else
    Select
    Case Round(Number($aVol[2])/1024) < 5
    GUICtrlSetColor($aProzent[$i],$cWarnColor)
    Case Round(Number($aVol[2])/1024) <= 10
    GUICtrlSetColor($aProzent[$i],$cAttentionColor)
    Case Else
    GUICtrlSetColor($aProzent[$i],$cOKColor)
    EndSelect
    EndIf
    GUICtrlSetData($aGB[$i],'von ' & StringReplace(Round(($aVol[3]/1024),1),'.',',') & 'GB')
    ;_ProgressSet($aProgress[$i], 100-Number($aVol[0])) ;100% = alles frei
    _ProgressSet($aProgress[$i], Number($aVol[0])) ;100% = alles voll
    If @error Then MsgBox(0, $aVol[0], @error)
    GUICtrlSetData($aName[$i], 'Auf ' & $aVol[1] & ' sind ' & _StringAddComma(StringReplace($aVol[2],'.',','),'.',',') & ' MB frei')

    Next
    EndFunc ;==>_Update

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

    Func _DriveFree($LW)
    Local $TOTAL = DriveSpaceTotal($LW), $FREE = DriveSpaceFree($LW), $aDrive[4] = [(Round(($TOTAL - $FREE) / ($TOTAL / 100), 2)), _
    StringUpper($LW) & ' (' & DriveGetLabel($LW) & ')', Round($FREE, 2), $TOTAL]
    Return $aDrive
    EndFunc ;==>_DriveFree

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

    ;Author: Progndy
    Func _OptionGUI()

    #Region ### START Koda GUI section ### Form=D:\Dokumente\Dateien von Andreas\OptGUI.kxf
    Local $OptGUI = GUICreate("SB Optionen", 316, 441, 458, 122)
    GUISetIcon("C:\WINDOWS\system32\shell32.dll", 53)
    Local $Tab1 = GUICtrlCreateTab(0, 0, 313, 401)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    Local $tabMisc = GUICtrlCreateTabItem("Optionen")
    Local $chkHideOnStart = GUICtrlCreateCheckbox("Versteckt Starten", 40, 48, 249, 25)
    If Execute($bHide) Then GUICtrlSetState(-1,$GUI_CHECKED)
    Local $grpDrives = GUICtrlCreateGroup("Laufwerkstypen", 24, 96, 265, 185)
    GUICtrlSetBkColor(-1, 0xFFFBF0)
    Local $chkCDROM = GUICtrlCreateCheckbox("CD- und DVD- Laufwerke", 40, 120, 225, 25)
    If Execute($bCDROM) Then GUICtrlSetState(-1,$GUI_CHECKED)
    Local $chkREMOVABLE = GUICtrlCreateCheckbox("Wechseldatenträger", 40, 150, 225, 25)
    If Execute($bREMOVABLE) Then GUICtrlSetState(-1,$GUI_CHECKED)
    Local $chkFixed = GUICtrlCreateCheckbox("Festplatten", 40, 180, 225, 25)
    If Execute($bFIXED) Then GUICtrlSetState(-1,$GUI_CHECKED)
    Local $chkNETWORK = GUICtrlCreateCheckbox("Netzlaufwerke", 40, 210, 225, 25)
    If Execute($bNETWORK) Then GUICtrlSetState(-1,$GUI_CHECKED)
    Local $chkRAMDISK = GUICtrlCreateCheckbox("RamDisks", 40, 240, 225, 25)
    If Execute($bRAMDISK) Then GUICtrlSetState(-1,$GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetTip(-1, "Laufwerke, die angezeigt werden sollen")
    Local $tabColor = GUICtrlCreateTabItem("Farben")
    GUICtrlSetState(-1,$GUI_SHOW)
    Local $btnGUI = GUICtrlCreateButton("GUI-Hintergrund", 24, 40, 121, 25, 0)
    Local $btnBar = GUICtrlCreateButton("Hide-Bar", 24, 65, 121, 25, 0)
    Local $btnGB = GUICtrlCreateButton("GB-Label", 24, 89, 121, 25, 0)
    Local $btnText = GUICtrlCreateButton("Info-Text", 24, 114, 121, 25, 0)
    Local $btnTextBG = GUICtrlCreateButton("Info-Text Hintergrund", 24, 138, 121, 25, 0)
    Local $btnWarn = GUICtrlCreateButton("Warnfarbe", 24, 163, 121, 25, 0)
    Local $btnAttention = GUICtrlCreateButton("Achtung-Farbe", 24, 188, 121, 25, 0)
    Local $btnOKColor = GUICtrlCreateButton("OK-Farbe", 24, 212, 121, 25, 0)
    Local $btnCloseBG = GUICtrlCreateButton("Schileßen Hintergrung", 24, 237, 121, 25, 0)
    Local $btnCloseX = GUICtrlCreateButton("Schließen X", 24, 262, 121, 25, 0)
    Local $btnProgress = GUICtrlCreateButton("Progressbar", 24, 286, 121, 25, 0)
    Local $btnProgressGrad = GUICtrlCreateButton("Progressbar Verlauf", 24, 311, 121, 25, 0)
    Local $btnProgressBG = GUICtrlCreateButton("Progress BG", 24, 335, 121, 25, 0)
    Local $btnProgressBGGrad = GUICtrlCreateButton("Progress BG Verlauf", 24, 360, 121, 25, 0)
    Local $grGUI = GUICtrlCreateLabel("",168, 43, 65, 19)
    GUICtrlSetBkColor(-1,$cGUIColor)
    Local $grBar = GUICtrlCreateLabel("",168, 68, 65, 19)
    GUICtrlSetBkColor(-1,$cBarColor)
    Local $grGB = GUICtrlCreateLabel("",168, 92, 65, 19)
    GUICtrlSetBkColor(-1,$cGBColor)
    Local $grText = GUICtrlCreateLabel("",168, 117, 65, 19)
    GUICtrlSetBkColor(-1,$cTextColor)
    Local $grTextBG = GUICtrlCreateLabel("",168, 141, 65, 19)
    GUICtrlSetBkColor(-1,$cTextBGColor)
    Local $grWarn = GUICtrlCreateLabel("",168, 166, 65, 19)
    GUICtrlSetBkColor(-1,$cWarnColor)
    Local $grAttention = GUICtrlCreateLabel("",168, 191, 65, 19)
    GUICtrlSetBkColor(-1,$cAttentionColor)
    Local $grOKColor = GUICtrlCreateLabel("",168, 215, 65, 19)
    GUICtrlSetBkColor(-1,$cOKColor)
    Local $grCloseBG = GUICtrlCreateLabel("",168, 240, 65, 19)
    GUICtrlSetBkColor(-1,$cCloseBGColor)
    Local $grCloseX = GUICtrlCreateLabel("",168, 265, 65, 19)
    GUICtrlSetBkColor(-1,$cCloseXColor)
    Local $grProgress = GUICtrlCreateLabel("",168, 289, 65, 19)
    GUICtrlSetBkColor(-1,$cProgressFrontColor)
    Local $grProgressGrad = GUICtrlCreateLabel("",168, 314, 65, 19)
    GUICtrlSetBkColor(-1,$cProgressFrontGradColor)
    Local $grProgressBG = GUICtrlCreateLabel("",168, 338, 65, 19)
    GUICtrlSetBkColor(-1,$cProgressBGColor)
    Local $grProgressBGGrad = GUICtrlCreateLabel("",168, 363, 65, 19)
    GUICtrlSetBkColor(-1,$cProgressBGEndColor)
    GUICtrlCreateTabItem("")
    Local $btnOK = GUICtrlCreateButton("OK + Neustart", 24, 408, 105, 25, 0)
    Local $btnCancel = GUICtrlCreateButton("Abbrechen", 152, 408, 113, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Local $nMsg
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($OptGUI)
    ExitLoop
    Case $btnCancel
    GUIDelete($OptGUI)
    ExitLoop
    Case $btnAttention
    $cAttentionColor = _ChooseColor(2,$cAttentionColor,2)
    GUICtrlSetBkColor($grAttention,$cAttentionColor)
    Case $btnWarn
    $cWarnColor = _ChooseColor(2,$cWarnColor,2)
    GUICtrlSetBkColor($grWarn,$cWarnColor)
    Case $btnGUI
    $cGUIColor = _ChooseColor(2,$cGUIColor,2)
    GUICtrlSetBkColor($grGUI,$cGUIColor)
    Case $btnBar
    $cBarColor = _ChooseColor(2,$cBarColor,2)
    GUICtrlSetBkColor($grBar,$cBarColor)
    Case $btnGB
    $cGBColor = _ChooseColor(2,$cGBColor,2)
    GUICtrlSetBkColor($grGB,$cGBColor)
    Case $btnText
    $cTextColor = _ChooseColor(2,$cTextColor,2)
    GUICtrlSetBkColor($grText,$cTextColor)
    Case $btnTextBG
    $cTextBGColor = _ChooseColor(2,$cTextBGColor,2)
    GUICtrlSetBkColor($grTextBG,$cTextBGColor)
    Case $btnOKColor
    $cOKColor= _ChooseColor(2,$cOKColor,2)
    GUICtrlSetBkColor($grOKColor,$cOKColor)
    Case $btnCloseBG
    $cCloseBGColor= _ChooseColor(2,$cCloseBGColor,2)
    GUICtrlSetBkColor($grCloseBG,$cCloseBGColor)
    Case $btnCloseX
    $cCloseXColor= _ChooseColor(2,$cCloseXColor,2)
    GUICtrlSetBkColor($grCloseX,$cCloseXColor)
    Case $btnProgress
    $cProgressFrontColor= _ChooseColor(2,$cProgressFrontColor,2)
    GUICtrlSetBkColor($grProgress,$cProgressFrontColor)
    Case $btnProgressGrad
    $cProgressFrontGradColor= _ChooseColor(2,$cProgressFrontGradColor,2)
    GUICtrlSetBkColor($grProgressGrad,$cProgressFrontGradColor)
    Case $btnProgressBG
    $cProgressBGColor= _ChooseColor(2,$cProgressBGColor,2)
    GUICtrlSetBkColor($grProgressBG,$cProgressBGColor)
    Case $btnProgressBGGrad
    $cProgressBGEndColor= _ChooseColor(2,$cProgressBGEndColor,2)
    GUICtrlSetBkColor($grProgressBGGrad,$cProgressBGEndColor)
    Case $btnOK
    $bHide = False
    If BitAND(GUICtrlRead($chkREMOVABLE), $GUI_CHECKED) Then $bHide = True
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'REMOVABLE', BitAND(GUICtrlRead($chkREMOVABLE), $GUI_CHECKED))
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'FIXED', BitAND(GUICtrlRead($chkFixed) , $GUI_CHECKED))
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'CDROM', BitAND(GUICtrlRead($chkCDROM) , $GUI_CHECKED))
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'NETWORK', BitAND(GUICtrlRead($chkNETWORK) , $GUI_CHECKED))
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'DriveTypes', 'RAMDISK', BitAND(GUICtrlRead($chkRAMDISK) , $GUI_CHECKED))
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Pos', 'bHide', BitAND(GUICtrlRead($chkHideOnStart) , $GUI_CHECKED))
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cGUIColor', $cGUIColor);0x444444)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cBarColor', $cBarColor);0xBBBBBB)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cGBColor', $cGBColor);0xBBBBBB)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cTextColor', $cTextColor);0xBBBBBB)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cTextBGColor', $cTextBGColor);0x666666)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cWarnColor', $cWarnColor);0xDD0000)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cAttentionColor', $cAttentionColor);0xEE8800)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cOKColor', $cOKColor);0x00CC00)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cCloseBGColor', $cCloseBGColor);0xDD0000)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cCloseXColor', $cCloseXColor);0xFFFFFF)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressFrontColor', $cProgressFrontColor);0xAAAA00)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressFrontGradColor', $cProgressFrontGradColor);0xFF0000)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressBGColor', $cProgressBGColor);0x00CC00)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Color', 'cProgressBGEndColor', $cProgressBGEndColor);0x00FF00)
    $aPos = WinGetPos($GUI)
    IniWrite(@ScriptDir & '\SpaceBar.ini', 'Pos', 'iPosY', $aPos[1])
    GUIDelete($OptGUI)
    If Not @Compiled Then
    Run('"' & @AutoItExe &'" ' &@ScriptFullPath)
    Else
    Run(@AutoItExe)
    EndIf
    Exit
    ExitLoop

    EndSwitch
    WEnd

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


    EndFunc

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

    ;-------------------------------------------------------------------
    #region Moving and Docking
    Func _WinMove($HWnd, $Command, $wParam, $lParam)
    If BitAND(WinGetState($HWnd), 32) Then Return $GUI_RUNDEFMSG
    DllCall('user32.dll', 'long', 'SendMessage', 'hwnd', $HWnd, 'int', $WM_SYSCOMMAND, 'int', 0xF009, 'int', 0)
    EndFunc ;==>_WinMove

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

    ; Author: Xenobiologist (Mega)
    Func On_WM_ENTERSIZEMOVE()
    Local $aMPos = MouseGetPos()
    $x_start = $aMPos[0]
    $y_start = $aMPos[1]
    EndFunc ;==>On_WM_ENTERSIZEMOVE

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

    ; Author: Xenobiologist (Mega)
    Func On_WM_MOVING($hWnd, $Msg, $wParam, $lParam)
    Local $aMPos = MouseGetPos()
    Local $rect = DllStructCreate('long left; long top; long right; long bottom', $lParam)
    Local $left = DllStructGetData($rect, 'left')
    Local $top = DllStructGetData($rect, 'top')
    Local $right = DllStructGetData($rect, 'right')
    Local $bottom = DllStructGetData($rect, 'bottom')
    If $left <= $Range And $aMPos[0] < $x_start Then
    DllStructSetData($rect, 'left', 0)
    DllStructSetData($rect, 'right', $right - $left)
    EndIf
    If $top <= $Range And $aMPos[1] < $y_start Then
    DllStructSetData($rect, 'top', 0)
    DllStructSetData($rect, 'bottom', $bottom - $top)
    EndIf
    If $right >= (@DesktopWidth - $Range) And $aMPos[0] > $x_start Then
    DllStructSetData($rect, 'right', @DesktopWidth)
    DllStructSetData($rect, 'left', (@DesktopWidth - $right) + $left)
    EndIf
    If $bottom >= ($taskbarPos[1] - $Range) And $aMPos[1] > $y_start Then
    DllStructSetData($rect, 'bottom', $taskbarPos[1])
    DllStructSetData($rect, 'top', ($taskbarPos[1] - $bottom) + $top)
    EndIf
    On_WM_ENTERSIZEMOVE()
    EndFunc ;==>On_WM_MOVING
    #endregion
    ;-------------------------------------------------------------------

    [/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)
    Dim $Color1_R, $Color1_G, $Color1_B, $Color2_R, $Color2_G, $Color2_B, $NeuCol_R, $NeuCol_G, $NeuCol_B

    $Color1_R = BitAND( BitShift($RGB_Color1, 16), 0xff)
    $Color1_G = BitAND( BitShift($RGB_Color1, 8), 0xff)
    $Color1_B = BitAND($RGB_Color1, 0xff)

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

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

    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' & Hex($NeuCol_R,2) & Hex($NeuCol_G,2) & Hex($NeuCol_B,2))
    Next
    Return $arColors
    EndFunc
    #endregion
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #region Colored Progressbar

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

    ;Hilfsfunktion für doppelten Verlauf
    ; Author(s): Prog@ndy
    Func _ZwischenGrad($RGB_c)
    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)
    Return Dec(Hex($c_R,2) & Hex($c_G,2) & Hex($c_B,2))
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressCreate($x, $y,$w = 204, $h = 24,$Col=0xFFFF00,$GradCol=0x00FF00,$BG=0xAAAA00,$GradBG=0xFF0000)
    Local $ID[8]
    $ID[0] = GUICtrlCreateGraphic($x,$y,$w,$h)
    Local $error = @error
    Local $extended = @extended
    $ID[1] = $w
    $ID[2] = $h
    If $Col = -1 Then $Col=0xFFFF00
    If $BG = -1 Then $BG=0xAAAA00
    If $GradCol = -1 Then $GradCol=0x00FF00
    If $GradBG = -1 Then $GradBG=0xFF0000
    $ID[3] = $Col
    $ID[4] = $BG
    $ID[5] = $GradCol
    $ID[6] = $GradBG
    _ProgressSet($ID,0)
    Return SetError($error,$extended,$ID)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressDelete(ByRef $ID)
    If Not IsArray($ID) Or UBound($ID) <> 8 Then Return SetError(1,0,0)
    $ID[1] = -1
    $ID[2] = -1
    $ID[3] = -1
    $ID[4] = -1
    $ID[5] = -1
    $ID[6] = -1
    $ID[7] = -1
    Dim $temp = GUICtrlDelete($ID[0])
    Return SetError(@error,0,$temp)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressSetColors(ByRef $ID,$Col,$BG=-1,$GradCol=-1,$GradBG=-1)
    If Not IsArray($ID) Or UBound($ID) <> 8 Then Return SetError(1,0,0)
    $ID[3] = $Col
    If $BG <> -1 Then $ID[4] = $BG
    If $GradCol <> -1 Then $ID[5] = $GradCol
    If $GradBG <> -1 Then $ID[6] = $GradBG
    MsgBox(0,$ID[6],$ID[7])
    _ProgressSet($ID,$ID[7])
    Return SetError(@error,0,@error)
    EndFunc

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

    ; Author(s): Prog@ndy
    Func _ProgressSet(ByRef $ID, $value)
    Local $Wechsel = Round((9/20)*$ID[2]-4)
    Local $Hoehe = $ID[2]-4
    Local $Breite = $ID[1]-4

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


    If $value <= $ID[7] Then
    GUICtrlSetBkColor($ID[0],0xAAAAAA)
    GUICtrlSetColor($ID[0],0x777777)
    $ID[7] = $value
    Local $temp = _ZwischenGrad($ID[6])
    Local $Gradient = _Gradient($ID[4],$temp, $Wechsel)
    Local $Gradient2 = _Gradient($temp,$ID[6], $Hoehe-$Wechsel)
    For $i = 2 To $Wechsel+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient[$i-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, 2,$i,$Breite,1)
    Next
    For $i = $Wechsel+2 To $Hoehe+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient2[$i-$Wechsel-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, 2,$i,$Breite,1)
    Next
    Local $start = 2
    Else
    Local $start = $ID[7]+2
    $ID[7] = $value
    EndIf

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

    Local $Faktor = $Breite/100
    $value *= $Faktor
    If Round($value) >= $Breite Then $value = $Breite
    Local $temp = _ZwischenGrad($ID[5])
    Local $Gradient = _Gradient($ID[3],$temp, $Wechsel)
    Local $Gradient2 = _Gradient($temp,$ID[5], $Hoehe-$Wechsel)
    ;Local $Gradient = _Gradient(0xFFFF00,0x00AA00, $Wechsel)
    ;Local $Gradient2 = _Gradient(0x00AA00,0x00FF00, $Hoehe-$Wechsel)
    For $i = 2 To $Wechsel+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient[$i-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, $start,$i,$value-$start+2,1)
    Next
    For $i = $Wechsel+2 To $Hoehe+1
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,$Gradient2[$i-$Wechsel-2])
    GUICtrlSetGraphic($ID[0],$GUI_GR_RECT, $start,$i,$value-$start+2,1)
    Next

    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,0xCCCCCC)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 2,2)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 2,$Hoehe+1);19)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+1,2)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+1,$Hoehe+1)
    GUICtrlSetGraphic($ID[0],$GUI_GR_COLOR,0xEEEEEE)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 0,$Hoehe+3)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, 0,0)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+3,$Hoehe+3)
    GUICtrlSetGraphic($ID[0],$GUI_GR_PIXEL, $Breite+3,0)

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

    GUICtrlSetGraphic($ID[0],$GUI_GR_REFRESH)

    EndFunc

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

    ; Original _Max() Function, directly included
    ; Author(s): Jeremy Landes <jlandes at landeserve dot com>
    Func _MyMax($nNum1, $nNum2)
    ; Check to see if the parameters are indeed numbers of some sort.
    If (Not IsNumber($nNum1)) Then
    SetError(1)
    Return (0)
    EndIf
    If (Not IsNumber($nNum2)) Then
    SetError(2)
    Return (0)
    EndIf

    If $nNum1 > $nNum2 Then
    Return $nNum1
    Else
    Return $nNum2
    EndIf
    EndFunc ;==>_Max

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

    #endregion
    ;-------------------------------------------------------------------

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

    ;-------------------------------------------------------------------
    #region Context Menu Handlers
    Func _RightClick($HWnd, $Command, $wParam, $lParam)
    ShowMenu($hWnd,$trackmenu,$aContext,1)
    EndFunc

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

    ;Author: MsCreatoR in http://www.autoitscript.com/forum/index.ph…ndpost&p=453350
    ;Modified from Help
    ; Show a menu in a given GUI window which belongs to a given GUI ctrl
    Func ShowMenu($hWnd, $nContextID, $nContextControlID, $iMouse=0)
    Local $hMenu = GUICtrlGetHandle($nContextID)
    Local $iCtrlPos = ControlGetPos($hWnd, '', $nContextControlID)

    Local $X = $iCtrlPos[0]
    Local $Y = $iCtrlPos[1] + $iCtrlPos[3]

    ClientToScreen($hWnd, $X, $Y)

    If $iMouse Then
    $X = MouseGetPos(0)
    $Y = MouseGetPos(1)
    EndIf

    DllCall('user32.dll', 'int', 'TrackPopupMenuEx', 'hwnd', $hMenu, 'int', 0, 'int', $X, 'int', $Y, 'hwnd', $hWnd, 'ptr', 0)
    EndFunc

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

    ; Convert the client (GUI) coordinates to screen (desktop) coordinates
    ;From Help
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate('int;int')

    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)

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

    DllCall('user32.dll', 'int', 'ClientToScreen', 'hwnd', $hWnd, 'ptr', DllStructGetPtr($stPoint))

    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
    EndFunc
    #endregion
    ;-------------------------------------------------------------------

    [/autoit]


    Insgesamt gerade mal 646 Zeilen mit Leerzeilen und Kommentaren :)

  • Hi Progandy,

    ist ja richtig spacig. Nur 646 Zeilen : „Eine kleine GUI für den Nutzer, aber ein langes Script für den Programmierer“ - Eben spacig ! :D

    Nach einem Klick auf „Ok+Neustart“ kommt es zu einer Fehlerausgabe in Zeile 4 ? :S

    PS: Sind Spoilerscript und Anhangscript wirklich gleich ?

    Schöne Feiertage und weiterhin
    viel Erfolg !

    Man liest sich...
    Euer Ritzelrocker04

  • wünsche dir auch schöne Feiertage :)

    Aber habe schon an alles Optionen herumgestellt die 00000000005% bleiben.

    Irgendwas steht da nochhinter 83,5GB in rot, muss nur den Eintrag finden und diesen Probehalber ausklammern finde ihn nur nicht

    • Offizieller Beitrag

    Pinguin: Es gibt einen Rundungsfehler-Bug in Round(), der zu diesem Ergebnis führen dürfte. Ich habe das Script mal entsprechend angepasst. Sollte mit dieser Version gehen.

    @progandy: Das mit den Optionen ist natürlich genial. So kann es sich jeder anpassen. Es gab aber noch ein Problem mit den CDROM-Laufwerken. Dort wurde kein Text angezeigt. Das habe ich behoben.


    Edit: Es gab auch noch ein Problem mit dem aktualisieren bei CDROM-Laufwerken. Jetzt wird auch das Wechseln einer CD/DVD erkannt.

    Edit2: Scheint so, als wenn die Board-Software Probleme mit den vielen AutoIt-Scripten hat. Jedenfalls dauert das laden der 3. Seite extrem lange. Ich werde mal den Spoiler rausnehmen. Bei so einem langen Script ist es IMO sowieso besser, das nur als Anhang zu posten.
    Ich habe jetzt nochmal etwas geändert, um den Rundungsfehler in den Griff zu bekommen (Pinguin kannst Du mal testen und berichten?). Außerdem habe ich in den Optionen einen Punkt hinzugefügt, der die kompilierte Exe als Verknüpfung in den Windows-Autostart packt.