Für alle, die eine farbige Progressbar haben wollen. Um die Schriftart zu ändern muss glaube ich die VB-Runtime installiert sein.
Spoiler anzeigen
; Code by Prog@ndy
;Does it need VB-Runtime???
;Progressbar OCX from http://www.recursosvisualbasic.com.ar/htm/ocx-compon…r-xp-varios.htm
;Paintx.dll from http://www.paintlib.de/paintlib/
#include <GUIConstants.au3>
Dim $ocx
[/autoit] [autoit][/autoit] [autoit]Func OnAutoItExit ( )
_GuiCtrlOCXProgressUnregister($ocx)
EndFunc
$ocx = _GuiCtrlOCXProgressRegister()
;$progress = ObjCreate("Proyecto2.XP_ProgressBar")
;Global Const $WM_LBUTTONDOWN = 0x0201
;Const $WM_SYSCOMMAND = 0x112
;Global $aNDrive = DriveGetDrive('FIXED'), $aProgress[$aNDrive[0]], $aName[$aNDrive[0]], $msg = 0, $aVol = 0
Global $GUI = GUICreate('SpaceBar v 2.0', 248, 500, @DesktopWidth - 250, 27, -1, $WS_EX_TOPMOST)
;GUICtrlCreateObj($progress,0,0,100,20)
$progar = _GuiCtrlCreateOCXProgress(2,2,200,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]_GuiCtrlOCXProgressShowText($progar)
_GuiCtrlOCXProgressSetScrolling($progar,9)
_GuiCtrlOCXProgressSetImage($progar,@ScriptDir & "\Progress.png")
_GuiCtrlOCXProgressSetColor($progar,0xFF0000)
_GuiCtrlOCXProgressSetMinMax($progar,0,100)
_GuiCtrlOCXProgressSetValue($progar,50)
_GuiCtrlOCXProgressShowOrientation($progar,0)
_GuiCtrlOCXProgressSetFont($progar,"", _
10, True, _
False, True, _
False, 800)
$progar2 = _GuiCtrlCreateOCXProgress(2,50,50,200)
$label = GUICtrlCreateLabel("This is a LABEL",2,125,50,75,$SS_CENTER)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1,0x0000FF)
GUICtrlSetFont(-1,12,700,-1,"Arial")
_GuiCtrlOCXProgressShowText($progar2,0) ;Text verstecken
_GuiCtrlOCXProgressSetScrolling($progar2,9)
_GuiCtrlOCXProgressSetImage($progar2,@ScriptDir & "\progress.png")
_GuiCtrlOCXProgressSetColor($progar2,0xFF0000)
_GuiCtrlOCXProgressSetMinMax($progar2,0,100)
_GuiCtrlOCXProgressSetValue($progar2,50)
_GuiCtrlOCXProgressShowOrientation($progar2,1)
_GuiCtrlOCXProgressSetFont($progar2,"Courier", _
10, True, _
False, True, _
False, 800)
GUISetState()
[/autoit] [autoit][/autoit] [autoit];Sleep(1000)
;_GuiCtrlDeleteOCXProgress($progar)
For $i = 0 To 10
_GuiCtrlOCXProgressSetScrolling($progar,$i)
_GuiCtrlOCXProgressSetScrolling($progar2,$i)
For $j = 0 To 100
_GuiCtrlOCXProgressSetValue($progar,$j)
_GuiCtrlOCXProgressSetValue($progar2,$j)
GUICtrlSetStyle($label,-1)
Sleep(20)
Next
Sleep(500)
Next
While 1
$msg = GUIGetMsg()
If $msg = -3 Or $msg = -1 Then ExitLoop
WEnd
Exit
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _GuiCtrlOCXProgressSetFont(ByRef $ProgressArray,$FontName = "", _
$Size = 0, $Bold = False, _
$Underline = False, $Italic = False, _
$Strikethrough = False, $Weight = -1)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
$Tfont = ObjCreate("StdFont")
If Not IsObj($Tfont) Then Return SetError(2,0,0)
If Not $FontName = "" Then $Tfont.Name = $FontName
If Not $Size = 0 Then $Tfont.Size = $Size
$Tfont.Bold = $Bold ;true/false
$Tfont.Underline = $Underline ;true/false
$Tfont.Italic = $Italic ;true/false
$Tfont.Strikethrough = $Strikethrough ;true/false
$Tfont.Charset(4576) ;true/false
If Not $Weight = -1 Then $Tfont.Weight = $Weight ; min: 0 /max: 1000
$ProgressArray[0].Font = $Tfont
$Tfont = 0
EndFunc
Func _GuiCtrlOCXProgressSetValue(ByRef $ProgressArray,$value)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
If Not IsNumber($value) Then Return SetError(2,0,0)
$ProgressArray[0].Value = $value
EndFunc
Func _GuiCtrlOCXProgressSetMinMax(ByRef $ProgressArray,$min = -1, $max = -1)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
If Not IsNumber($min) Or Not IsNumber($max) Then Return SetError(2,0,0)
If $min > -1 Then $ProgressArray[0].min = $min
If $max > -1 Then $ProgressArray[0].max = $max
EndFunc
Func _GuiCtrlOCXProgressShowText(ByRef $ProgressArray,$value = True)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
If Not $value = 1 And Not $value = 0 Or IsString($value) Then Return SetError(2,0,0)
$ProgressArray[0].ShowText = $value
EndFunc
Func _GuiCtrlOCXProgressShowOrientation(ByRef $ProgressArray,$value = 0)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
If Not $value = 1 And Not $value = 0 Or IsString($value) Then Return SetError(2,0,0)
$ProgressArray[0].Orientation = $value
EndFunc
Func _GuiCtrlOCXProgressSetScrolling(ByRef $ProgressArray,$value)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
If $value >= 0 And $value <= 10 Then
$ProgressArray[0].Scrolling = $value
Return 1
EndIf
Return 0
EndFunc
Func _GuiCtrlOCXProgressSetColor(ByRef $ProgressArray,$value, $RGB = 1)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
If $RGB Then
$hex = Hex($value,6)
$value = Execute("0x" & StringRight($hex,2) & StringMid($hex,3,2) & StringLeft($hex,2))
EndIf
$ProgressArray[0].Color = $value
EndFunc
Func _GuiCtrlOCXProgressSetImage(ByRef $ProgressArray,$value)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
If Not FileExists($value) Then Return SetError(2,0,0)
$TPictureLoad = ObjCreate("PaintX.PictureDecoder")
$ProgressArray[0].Image = $TPictureLoad.LoadPicture($value)
$TPictureLoad = 0
EndFunc
Func _GuiCtrlCreateOCXProgress($x, $y, $width, $height, $Scrolling = 0, $Orientation = 0)
Dim $ar[2]
$ar[0] = ObjCreate("Proyecto2.XP_ProgressBar")
If @error Then Return SetError(1,0,0)
$ar[0].Scrolling = $scrolling
$ar[0].Orientation = $Orientation
$ar[1] = GUICtrlCreateObj($ar[0],$x,$y,$width,$height)
Return $ar
EndFunc
Func _GuiCtrlOCXProgressRegister()
$return = 0
If RegRead("HKCR\CLSID\{4A5E5E35-91F4-46B1-B62F-78148132EF93}","") = "Proyecto2.XP_ProgressBar" Then
Else
If Not FileExists(@ScriptDir & "\progressbar-xp.ocx") Then FileInstall("progressbar-xp.ocx",@ScriptDir & "\progressbar-xp.ocx")
RunWait("regsvr32.exe /s progressbar-xp.ocx",@ScriptDir)
$return = 1
EndIf
If RegRead("HKCR\CLSID\{B69FE5D3-9F53-11D2-B13F-444553540000}","") = "PictureDecoder Class" Then
Else
If Not FileExists(@ScriptDir & "\paintx.dll") Then FileInstall("paintx.dll",@ScriptDir & "\paintx.dll")
RunWait("regsvr32.exe /s paintx.dll",@ScriptDir)
$return += 2
EndIf
Return $return
EndFunc
Func _GuiCtrlOCXProgressUnregister($Install)
If $Install >= 1 Then
RunWait("regsvr32.exe /s /u progressbar-xp.ocx",@ScriptDir)
FileDelete(@ScriptDir & "\progressbar-xp.ocx")
EndIf
If $Install >= 2 Then
RunWait("regsvr32.exe /s /u paintx.dll",@ScriptDir)
FileDelete(@ScriptDir & "\paintx.dll")
EndIf
EndFunc
Func _GuiCtrlDeleteOCXProgress(ByRef $ProgressArray)
If Not IsObj($ProgressArray[0]) Then Return SetError(1,0,0)
GUICtrlDelete($ProgressArray[1])
$ProgressArray[0] = 0
Return 1
EndFunc