saavaage
28-09-2010, 18:25
Есть скрипт прогресс-бара:
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <SendMessage.au3> ;Needed for _SendMessage function.
#include <ProgressConstants.au3>
#include <GUIConstantsEx.au3>
$hProgressSplash = _SplashTextProgress("Внимание! Идет сбор системной информации. Ждите...")
; скрипт с гуи + задержка на появление 10 сек
Opt("GUIOnEventMode", 1)
sleep(10000)
$hMain_GUI = GUICreate("OPPPPP", 619, 442, 189, 122)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Tab1 = GUICtrlCreateTab(8, 16, 601, 377)
$DriverErrors = GUICtrlCreateTabItem("XXXXXXXXXX")
GUICtrlCreateTabItem("")
GUISetState()
While 1
Sleep(100)
WEnd
Func CLOSEClicked()
Exit
EndFunc
Func _SplashTextProgress($sText)
SplashOff() ;Turn previous splash text screens off.
$hSplash = GUICreate("", 500, 150, -1, -1, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE, $WS_EX_TOOLWINDOW))
;~ $iProgressBar = GUICtrlCreateProgress(100, 325, 305, 25, $PBS_SMOOTH)
$iProgressBar = GUICtrlCreateProgress(30, 100, 440, 35, $PBS_MARQUEE) ;A Marquee progress bar.
_SendMessage(GUICtrlGetHandle(-1), $PBM_SETMARQUEE, True, 80) ;last parameter is update time in ms. Sends message to run the Marquee progress bar.
$iMessage = GUICtrlCreateLabel($sText, 0, 20, 500, 50, $SS_CENTER)
GUICtrlSetFont(-1, 16, 500, 0, "Courier New")
GUISetState(@SW_SHOW)
Return SetExtended($iProgressBar, $hSplash)
EndFunc
Проблема:
как сделать так, чтобы прогресс-бар исчезал при появлении гуи-окна скрипта?
Дело в том, что у меня утилита довольно долго грузится, собирая всю необходимую инфо и необходимо привязать прогресс-бар к появлению ее окна на дисплее.
PS Autoit 3.3.6.1
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <SendMessage.au3> ;Needed for _SendMessage function.
#include <ProgressConstants.au3>
#include <GUIConstantsEx.au3>
$hProgressSplash = _SplashTextProgress("Внимание! Идет сбор системной информации. Ждите...")
; скрипт с гуи + задержка на появление 10 сек
Opt("GUIOnEventMode", 1)
sleep(10000)
$hMain_GUI = GUICreate("OPPPPP", 619, 442, 189, 122)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Tab1 = GUICtrlCreateTab(8, 16, 601, 377)
$DriverErrors = GUICtrlCreateTabItem("XXXXXXXXXX")
GUICtrlCreateTabItem("")
GUISetState()
While 1
Sleep(100)
WEnd
Func CLOSEClicked()
Exit
EndFunc
Func _SplashTextProgress($sText)
SplashOff() ;Turn previous splash text screens off.
$hSplash = GUICreate("", 500, 150, -1, -1, BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE, $WS_EX_TOOLWINDOW))
;~ $iProgressBar = GUICtrlCreateProgress(100, 325, 305, 25, $PBS_SMOOTH)
$iProgressBar = GUICtrlCreateProgress(30, 100, 440, 35, $PBS_MARQUEE) ;A Marquee progress bar.
_SendMessage(GUICtrlGetHandle(-1), $PBM_SETMARQUEE, True, 80) ;last parameter is update time in ms. Sends message to run the Marquee progress bar.
$iMessage = GUICtrlCreateLabel($sText, 0, 20, 500, 50, $SS_CENTER)
GUICtrlSetFont(-1, 16, 500, 0, "Courier New")
GUISetState(@SW_SHOW)
Return SetExtended($iProgressBar, $hSplash)
EndFunc
Проблема:
как сделать так, чтобы прогресс-бар исчезал при появлении гуи-окна скрипта?
Дело в том, что у меня утилита довольно долго грузится, собирая всю необходимую инфо и необходимо привязать прогресс-бар к появлению ее окна на дисплее.
PS Autoit 3.3.6.1