Carlo84 Posted May 1, 2011 Posted May 1, 2011 (edited) This UDF ccreates a customizable image popup window with a progress bar and status text. Functions:_SplashProgressImageOff _SplashProgressImageOn _SplashProgressImageSet Example: #include "_SplashProgressImage.au3" _Example() Func _Example() Local $i, $sImage = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\Examples\GUI\msoobe.jpg' If Not FileExists($sImage) Then MsgBox(262160, 'Autoit.', 'Image does not exist, try this function with a diffrent image path.') Exit EndIf _SplashProgressImageOn('Loading', $sImage, 'Loading script...', 0xFFFFFF, 256, 200, -1, -1, 1) For $i = 0 To 100 Step 10 _SplashProgressImageSet($i, 'Loading resources ' & $i & '%') Sleep(Random(10, 1000, 1)) Next Sleep(1000) _SplashProgressImageOff() EndFunc ;==>_Example Script:_SplashProgressImage.au3 expandcollapse popup#include-once Global $a_SplashProgressImage[4] #Region _SplashProgressImageOff ; #FUNCTION# ;=============================================================================== ; ; Name...........: _SplashProgressImageOff ; Description ...: Turns SplashProgressImage off. ; Syntax.........: _SplashProgressImageOff() ; Parameters ....: None ; Return values .: Success - Returns 1. ; Failure - Returns 0 ; ; Author ........: Carlo Westmaas ; Modified.......: ; Remarks .......: ; Related .......: _SplashProgressImageOn, _SplashProgressImageSet ; Link ..........; http://www.autoitscript.com/forum/topic/128197-udf-splashprogressimageau3/ ; Example .......; No ; ; ;========================================================================================== Func _SplashProgressImageOff() Dim $a_SplashProgressImage If Not IsArray($a_SplashProgressImage) Then Return 0 If Not IsHWnd($a_SplashProgressImage[0]) Then Return 0 Local $i = GUIDelete($a_SplashProgressImage[0]) Dim $a_SplashProgressImage[4] = [0, 0, 0, 0] Return $i EndFunc ;==>_SplashProgressImageOff #EndRegion _SplashProgressImageOff #Region _SplashProgressImageOn ; #FUNCTION# ;=============================================================================== ; ; Name...........: _SplashProgressImageOn ; Description ...: Creates a customizable image popup window with a progress bar ; Syntax.........: _SplashProgressImageOn($sTitle, $sFile [, $sText = "" [, $iColor = -1 [, $iWidth = -1 [, $iHeight = -1 [, $iLeft = -1 [, $iTop = -1 [, $iFlag = -1]]]]]]] ) ; Parameters ....: $sTitle - Title for splash window. ; $sFile - full path\filename of image (BMP, GIF, or JPG) ; $sText - [optional] text for label. (default is blank) ; $iColor - [optional] text color of splash label. ; $iWidth - [optional] width of window in pixels. (default is 500) ; $iHeight - [optional] height of window in pixels. (default is 400) ; $iLeft - [optional] position from left (in pixels) of splash window. (default is centered) ; $iTop - [optional] position from top (in pixels) of splash window. (default is centered) ; $iFlag - [optional] Add up the options you want. Default is 'always on top/with title' ; |1 = Thin bordered titleless window ; |2 = Without "always on top" attribute ; |16 = Window can be moved ; ; Return values .: Success - Returns 1. ; Failure - Returns 0. ; ; Author ........: Carlo Westmaas ; Modified.......: ; Remarks .......: ; Related .......: _SplashProgressImageOff, _SplashProgressImageSet ; Link ..........; http://www.autoitscript.com/forum/topic/128197-udf-splashprogressimageau3/ ; Example .......; No ; ; ;========================================================================================== Func _SplashProgressImageOn($sTitle, $sFile, $sText = "", $iColor = -1, $iWidth = -1, $iHeight = -1, $iLeft = -1, $iTop = -1, $iFlag = -1) Dim $a_SplashProgressImage If Not IsArray($a_SplashProgressImage) Then Return 0 If IsHWnd($a_SplashProgressImage[0]) Then Return 0 Local $aStyle[2] = [0x00800000, 0x08000000], $iExStyle[2] = [0x00000008, 0x00000080] If $iWidth = -1 Or $iHeight = -1 Then $iWidth = 500 If $iWidth = -1 Or $iHeight = -1 Then $iHeight = 400 If $iFlag <> -1 Then If BitAND($iFlag, 1) Then $aStyle[0] = 0x80880000 If BitAND($iFlag, 2) Then $iExStyle[0] = 0 If BitAND($iFlag, 16) Then $aStyle[1] = 0 EndIf If Not StringRegExp($sText, '\n') Then $sText = @LF & $sText Local $hWnd = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($aStyle[0], $aStyle[1]), BitOR($iExStyle[0], $iExStyle[1])) Local $aSize = WinGetClientSize($hWnd) Local $hImg = GUICtrlCreatePic($sFile, 0, 0, $aSize[0], $aSize[1], 0x08000000) $sText = GUICtrlCreateLabel($sText, 5, $aSize[1] - 50, $aSize[0] - 10, 30, 0x0C) GUICtrlSetBkColor(-1, -2) If $iColor <> -1 Then GUICtrlSetColor(-1, $iColor) Local $hProgress = GUICtrlCreateProgress(5, $aSize[1] - 20, $aSize[0] - 10, 15) GUISetState(@SW_SHOW, $hWnd) Dim $a_SplashProgressImage[4] = [$hWnd, $sText, $hProgress, $hImg] Return 1 EndFunc ;==>_SplashProgressImageOn #EndRegion _SplashProgressImageOn #Region _SplashProgressImageSet ; #FUNCTION# ;=============================================================================== ; ; Name...........: _SplashProgressImageSet ; Description ...: Creates a customizable image popup window with a progress bar ; Syntax.........: _SplashProgressImageSet($iPercent [, $sText = -1 [, $iColor = -1 [, $sFile = -1]]] ) ; Parameters ....: $iPercent - Percentage (value between 0. and 100.) to set the progress bar at. ; $sText - [optional] Set the text for the Splash label. ; $iColor - [optional] Set the text color for the Splash label. ; $sFile - [optional] full path\filename of image (BMP, GIF, or JPG) ; ; Return values .: Success - Returns 1. ; Failure - Returns 0. ; ; Author ........: Carlo Westmaas ; Modified.......: ; Remarks .......: ; Related .......: _SplashProgressImageOff, _SplashProgressImageOff ; Link ..........; http://www.autoitscript.com/forum/topic/128197-udf-splashprogressimageau3/ ; Example .......; No ; ; ;========================================================================================== Func _SplashProgressImageSet($iPercent, $sText = -1, $iColor = -1, $sFile = -1) If Not IsArray($a_SplashProgressImage) Then Return 0 If Not IsHWnd($a_SplashProgressImage[0]) Then Return 0 GUICtrlSetData($a_SplashProgressImage[2], $iPercent) If $sText <> -1 Then If Not StringRegExp($sText, '\n') Then $sText = @LF & $sText GUICtrlSetData($a_SplashProgressImage[1], $sText) EndIf If $iColor <> -1 Then GUICtrlSetColor($a_SplashProgressImage[1], $iColor) If $sFile <> -1 Then GUICtrlSetImage($a_SplashProgressImage[3], $sFile) EndIf Return 1 EndFunc ;==>_SplashProgressImageSet #EndRegion _SplashProgressImageSet [Edit] Corrected the flag options for SplashProgressImageOn in the commented description. Edited August 25, 2014 by Carlo84 _SplashProgressImage | _Regionselector | _IsPressed360 | _UserAccountContol_SetLevel | _ListSubFolders
wakillon Posted May 2, 2011 Posted May 2, 2011 It's a cool example ! Thanks to share. intime69 1 AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts
intime69 Posted April 26, 2012 Posted April 26, 2012 (edited) Very nice! Ian Edited April 26, 2012 by intime69 Developer and Co-OwnerInTime Applicaitons Inc.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now