Hallo,
Ich habe folgendes Problem:
Ich habe eine Progressbar mit der UDF von Progandy erstellt, hier
aber der progress bleibt bei 3% stehen...
das ganze script ist eigentlich mehr eine übung
hier der code
Spoiler anzeigen
#include-once
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <GuiStatusBar.au3>
#include <String.au3>
#include <GUIConstantsEx.au3>
#include <GDIpProgress.au3>
#RequireAdmin
#NoTrayIcon
;Scripted by Padmak, http://www.autoit.de
Local $StatusBar1_PartsWidth[4] = [85, 225, 380, 200]
_GDIPlus_Startup()
$Form1 = GUICreate("Slider Test", 540, 300, -1, -1)
$hWnd = WinGetHandle("Slider Test")
$Slider1 = GUICtrlCreateSlider(15, 15, 494, 45)
$Progress1 = GUICtrlCreateProgress(15, 64, 494, 17)
$slider = GUICtrlRead($Slider1)
$Progress1 = _ProgressCreate(15, 64, 494, 17)
_ProgressSetText($Progress1, "Aktueller Stand: " & $slider & " %")
;~ _ProgressSet($Progress1, 50)
$Label1 = GUICtrlCreateLabel("Aktueller Stand in %:", 15, 96, 101, 17)
$Input1 = GUICtrlCreateInput("", 15, 120, 97, 21)
$Label2 = GUICtrlCreateLabel("Selbst ändern:", 152, 96, 72, 17)
$Input2 = GUICtrlCreateInput("", 152, 120, 73, 21)
$Button1 = GUICtrlCreateButton("Go", 264, 120, 75, 25, 0)
$Button2 = GUICtrlCreateButton("Beenden", 344, 120, 75, 25, 0)
$Label3 = GUICtrlCreateLabel("0 %", 15, 160, 61, 17)
$Label4 = GUICtrlCreateLabel("", 15, 184, 500, 28)
$slider = GUICtrlRead($Slider1)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlCreateUpdown($Input2)
GUICtrlSetLimit($Input2, 100, 0)
GUICtrlSetData($Input2, "0")
GUICtrlSetState($Input2, $GUI_FOCUS)
$StatusBar1 = _GUICtrlStatusBar_Create($Form1)
_GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth)
_GUICtrlStatusBar_SetText($StatusBar1, "Aktuelle %: " & $slider)
_GUICtrlStatusBar_SetText($StatusBar1, "Aktuelle Uhrzeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 1)
_GUICtrlStatusBar_SetText($StatusBar1, "Aktuelles Datum: " & @MDAY & ":" & @MON & ":" & @YEAR, 2)
_GUICtrlStatusBar_SetText($StatusBar1, "Aktueller Benutzer: " & @UserName, 3)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 1)
$hPen = _GDIPlus_PenCreate(0xFF000000, 2)
_GDIPlus_PenSetWidth($hPen, 6)
$hPenBk = _GDIPlus_PenCreate(_GetBkColor(), 2)
_GDIPlus_PenSetWidth($hPenBk, 6)
GUISetState()
While 1
If WinActive("Slider Test") Then
HotKeySet("{enter}", "Button")
Else
HotKeySet("{enter}")
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
_GDIPlus_GraphicsClear($hGraphic)
_GDIPlus_Shutdown()
Case $Button1
Button()
Case $Button2
Exit
EndSwitch
$slider = GUICtrlRead($Slider1)
$test = _ProgressGet($Progress1)
$data = GUICtrlRead($Input2)
If $data > 100 Then
GUICtrlSetData($Input2, 100)
ElseIf $data < 0 Then
GUICtrlSetData($Input2, 0)
EndIf
If $slider <> $test Then
ToolTip($test, 0, 0)
_ProgressSet($Progress1, $Slider1)
_ProgressSetText($Progress1, "Aktueller Stand: " & $slider & " %")
GUICtrlSetData($Input1, $slider)
GUICtrlSetData($Input2, $slider)
GUICtrlSetData($Label3, $slider & " %")
GUICtrlSetData($Label4, _StringRepeat("|", $slider))
_GUICtrlStatusBar_SetText($StatusBar1, "Aktuelle %: " & $slider)
EndIf
Sleep(50)
$sliderunten = 7 + ($slider * 5.25)
$slideroben = 531 - ($slider * 5.25)
$faktorrechts = $slider * 2.48
$faktorlinks = $slider * 2.48
_GUICtrlStatusBar_SetText($StatusBar1, "Aktuelle Uhrzeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 1)
_GUICtrlStatusBar_SetText($StatusBar1, "Aktuelles Datum: " & @MDAY & "." & @MON & "." & @YEAR, 2)
_GUICtrlStatusBar_SetText($StatusBar1, "Aktueller Benutzer: " & @UserName, 3)
_Refresh($sliderunten, $slideroben, $faktorrechts, $faktorlinks)
WEnd
Func _GetBkColor()
Local $Color = Hex(BitAND(BitShift(String(Binary(_WinAPI_GetSysColor($COLOR_3DFACE))), 8), 0xFFFFFF))
Return "0xFF" & StringTrimLeft($Color, 2)
EndFunc ;==>_GetBkColor
Func _Refresh($iSliderUnten, $iSliderOben, $iSliderRechts, $iSliderLinks)
_GDIPlus_GraphicsDrawLine($hGraphic, 2, 251, $iSliderUnten - 2, 251, $hPen);Slider unten
_GDIPlus_GraphicsDrawLine($hGraphic, $iSliderUnten - 6, 251, 530, 251, $hPenBk); Slider unten
_GDIPlus_GraphicsDrawLine($hGraphic, 526, 254, 526, 250 - $iSliderRechts, $hPen); Slider rechts
_GDIPlus_GraphicsDrawLine($hGraphic, 526, 5, 526, 256 - $iSliderRechts, $hPenBk); Slider rechts
_GDIPlus_GraphicsDrawLine($hGraphic, 529, 5, $iSliderOben, 5, $hPen); Slider oben
_GDIPlus_GraphicsDrawLine($hGraphic, $iSliderOben, 5, 5, 5, $hPenBk); Slider oben
_GDIPlus_GraphicsDrawLine($hGraphic, 5, 2, 5, 2 + $iSliderLinks, $hPen); Slider links
_GDIPlus_GraphicsDrawLine($hGraphic, 5, 248, 5, 0 + $iSliderLinks, $hPenBk); Slider links
EndFunc ;==>_Refresh
Func Button()
$data = GUICtrlRead($Input2)
GUICtrlSetData($Slider1, $data)
_ProgressSet($Progress1, $data)
_ProgressSetText($Progress1, "Aktueller Stand: " & $slider & " %")
GUICtrlSetData($Input1, $data)
GUICtrlSetData($Input2, $data)
GUICtrlSetData($Label4, _StringRepeat("|", $data))
$sliderunten = 8 + ($data * 5.2)
$slideroben = 531 - ($data * 5.25)
$faktorrechts = $data * 2.48
$faktorlinks = $data * 2.48
_GUICtrlStatusBar_SetText($StatusBar1, "Aktuelle %: " & $data)
_Refresh($sliderunten, $slideroben, $faktorrechts, $faktorlinks)
EndFunc ;==>Button
ich habe vista, wahrscheinlich ist es deshalb...
Padmak