Что нового

при исполнения скрипта показать окно "Ждите" после выполнения закрыть окно

ikristya

Новичок
Сообщения
4
Репутация
0
Добрый день.Есть скрипт , можно ли сделать так что при его выполнения отобразить на экран пользователю "ждите " с крутящим кругом или другой гиф-кой но сам скрипт выполнялся
после чего он выполнился (скрипт) ,закрыть это окно и уже вывести сообщение что успешно все закончилось?
вот часть кода( с GUI) где после нажатие кнопки next скрываю окно GUI при начале действий скрипта и дальше выполняется сам скрипт ,все в скрытном режиме от пользователя.
в тот момент когда пользователь нажимает Далее , то появляется гиф и висит пока скрипт не выполнился
Код:
$next = GUICtrlCreateButton ("Далее!",200,500,100,20)
														$cancel1 = GUICtrlCreateButton ( "Отмена",320,500,100,20)
													While 1
															$msg = GUIGetMsg()
															Select
																Case $msg=$cancel
																     exit
																case $msg=$next
                                                                     GUISetState(@SW_HIDE)

											  DirCreate("C:\IS\SExpert")
                                                         ;дальше остальная часть скрипта

вот в конец что поставил:
Код:
GUIDelete($hGui)
MsgBox(0, "Сообщение!","Программа установлена!")
 
A

Alofa

Гость
Вот пример Отсюда (немного переработан под ваши нужды).
Код:
;coded by UEZ build 2014-02-27, idea taken from http://codepen.io/austinmzach/pen/wxrAj
;AutoIt v3.3.9.21 or higher needed!

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Timers.au3>

_GDIPlus_Startup()
Global Const $STM_SETIMAGE = 0x0172; $IMAGE_BITMAP = 0
Global $sText = "ЖДИТЕ", $iW = StringLen($sText) * 50, $iH = 100, $iTimerID
Global Const $hGUI = GUICreate("Yet Another Loading Animation", $iW, $iH, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
Global Const $iPic = GUICtrlCreatePic("", 0, 0, $iW, $iH)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()

Global $hHBmp_BG, $hB, $iSleep = 20, $k
$iTimerID = _Timer_SetTimer($hGUI, $iSleep, '_PlayAnim')

Do
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			_Quite(1)
	EndSwitch
	Sleep(30)
	$k += 1
	ToolTip('Нажмите "ESC" для выхода.', Default, Default, 'Скрипт Работает: ' & $k & '%')
	If $k = 100 Then
		_Quite()
		MsgBox(262144 + 64, 'Сообщение!', 'Программа установлена!')
		Exit
	EndIf
Until False

; ------------ Functions --------------------------------------------------------------------
Func _PlayAnim($hWnd, $Msg, $iIDTimer, $dwTime)
	$hHBmp_BG = _GDIPlus_YetAnotherLoadingAnim($iW, $iH, $sText)
	$hB = GUICtrlSendMsg($iPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBmp_BG)
	If $hB Then _WinAPI_DeleteObject($hB)
	_WinAPI_DeleteObject($hHBmp_BG)
EndFunc   ;==>_PlayAnim


Func _GDIPlus_YetAnotherLoadingAnim($iW, $iH, $sText = "LOADING", $sFont = "Arial", $bHBitmap = True)
	Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
	Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap)

	Local Const $aChar = StringSplit($sText, "", 2)
	Local Const $iW_Char = $iW / UBound($aChar), $iH_Char = $iH * 0.8
	Local Const $hBmp = _GDIPlus_BitmapCreateFromScan0($iW_Char, $iH_Char), $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBmp), _
			$hBrush_Bg = _GDIPlus_LineBrushCreate($iW_Char / 2, 0, $iW_Char / 2, $iH_Char, 0xFF222222, 0xFF444444), $hPen_Border = _GDIPlus_PenCreate(0), _
			$hBrush_Fg = _GDIPlus_LineBrushCreate($iW / 2, 0, $iW / 2, $iH, 0xFFFFFFFF, 0xFF9090A0), _
			$hBrush_Char = _GDIPlus_BrushCreateSolid(0xFFFFFFFF), $hBrush_CharShadow = _GDIPlus_BrushCreateSolid(0x40101010), _
			$hFamily = _GDIPlus_FontFamilyCreate($sFont), $hFont = _GDIPlus_FontCreate($hFamily, $iW_Char / 2), $hFormat = _GDIPlus_StringFormatCreate()

	_GDIPlus_LineBrushSetGammaCorrection($hBrush_Fg)
	_GDIPlus_StringFormatSetAlign($hFormat, 1)
	_GDIPlus_StringFormatSetLineAlign($hFormat, 1)
	Local $i, $tLayout = _GDIPlus_RectFCreate(0, 0, $iW_Char, $iH_Char), $z
	Local Static $y = 0, $fSin_prev, $fSin
	_GDIPlus_GraphicsSetSmoothingMode($hCtxt, $GDIP_SMOOTHINGMODE_ANTIALIAS8X4 + (@OSBuild > 5999))
	_GDIPlus_GraphicsSetTextRenderingHint($hCtxt, $GDIP_TEXTRENDERINGHINT_ANTIALIAS)
	_GDIPlus_GraphicsSetPixelOffsetMode($hCtxt, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)
	For $i = 0 To UBound($aChar) - 1
		_GDIPlus_GraphicsClear($hCtxt)
		_GDIPlus_GraphicsFillRect($hCtxt, 0, 0, $iW_Char, $iH, $hBrush_Bg)
		_GDIPlus_PenSetColor($hPen_Border, 0xFF444444)
		_GDIPlus_GraphicsDrawLine($hCtxt, 0, 0, 0, $iH, $hPen_Border)
		_GDIPlus_PenSetColor($hPen_Border, 0xFF222222)
		_GDIPlus_GraphicsDrawLine($hCtxt, $iW_Char, 0, $iW_Char, $iH, $hPen_Border)
		$tLayout.X = 4
		$tLayout.Y = 4
		_GDIPlus_GraphicsDrawStringEx($hCtxt, $aChar[$i], $hFont, $tLayout, $hFormat, $hBrush_CharShadow)
		$tLayout.X = 0
		$tLayout.Y = 0
		_GDIPlus_GraphicsDrawStringEx($hCtxt, $aChar[$i], $hFont, $tLayout, $hFormat, $hBrush_Char)
		_GDIPlus_GraphicsDrawImage($hGfx, $hBmp, $i * $iW_Char, $iH - $iH_Char)
		$fSin_prev = $fSin
		$fSin = Sin($y - $z)
		_GDIPlus_GraphicsFillRect($hGfx, $i * $iW_Char, 0, $iW_Char, 20 + $iH_Char * $fSin, $hBrush_Fg)
		If $fSin_prev > $fSin Then
			$y += 0.0035
		Else
			$y += 0.025
		EndIf
		$z += 0.4
	Next
	_GDIPlus_PenDispose($hPen_Border)
	_GDIPlus_BrushDispose($hBrush_Bg)
	_GDIPlus_BrushDispose($hBrush_Fg)
	_GDIPlus_BrushDispose($hBrush_Char)
	_GDIPlus_BrushDispose($hBrush_CharShadow)
	_GDIPlus_FontFamilyDispose($hFamily)
	_GDIPlus_FontDispose($hFont)
	_GDIPlus_StringFormatDispose($hFormat)
	_GDIPlus_GraphicsDispose($hCtxt)
	_GDIPlus_BitmapDispose($hBmp)
	_GDIPlus_GraphicsDispose($hGfx)
	If $bHBitmap Then
		Local $hHBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
		_GDIPlus_BitmapDispose($hBitmap)
		Return $hHBITMAP
	EndIf
	Return $hBitmap
EndFunc   ;==>_GDIPlus_YetAnotherLoadingAnim

Func _Quite($i = 0)
	_Timer_KillTimer($hGUI, $iTimerID)
	_WinAPI_DeleteObject($hHBmp_BG)
	_GDIPlus_Shutdown()
	GUIDelete()
	If $i Then
		Exit
	Else
		ToolTip('')
	EndIf
EndFunc   ;==>_Quite
 
Автор
I

ikristya

Новичок
Сообщения
4
Репутация
0
этот код ставить после
Код:
case $msg=$next
                GUISetState(@SW_HIDE)
а то я как то не понял куда его записать чтобы он начал работать после того как нажимать Next
 
A

Alofa

Гость
ikristya сказал(а):
этот код ставить после...
Честно говоря, не знаю, что вам сказать.
Для того чтобы ответить на ваш вопрос мне нужно знать для чего этот скрипт, а для этого мене нужно его увидеть, понять что да как, куда, зачем. После чего, по идее, я должен буду предоставить вам интегрированный скрипт. Вы скажите Спасибо и зададите еще вопрос, на который вроде как я должен буду ответить, повторив все вышеописанные шаги.
Ничего не напоминает? Стол заказов -> a.k.a “Сделайте всё за меня”.
А здесь другая ветка.
Поэтому я не знаю, что вам сказать.
 
Автор
I

ikristya

Новичок
Сообщения
4
Репутация
0
НЕ нужно сделать все за меня, я хочу узнать можно ли пока выполняется основной скрипт запустить что то на подобие гифка чтобы пользователь понимал что выполняется установка программ и нужно ждать.
Код:
te($1gui)
			Switch GUICtrlRead($Combo3)

case $Name10      ;salesExpert======================================================================================================================


global $sServer = 'ftp.edi.md'
global $sUsername = "userftp"
global $sPass = "passwords"

global $hOpen = _FTP_Open('MyFTP Control')
global $hConn = _FTP_Connect($hOpen, $sServer, $sUsername, $sPass, 1)
Global $s_Remote = "/SalesExpert/beta/"                        ;adresa la mapa cu versiuni la programe
Global $Tr_remote = "/Templates/Configurations/Osc.Transport.Service.exe.config"     ;adresa la config transporta pe ftp
Global $DB_remote = "/Templates/Configurations/Osc.DB.Service.exe.config"          ;adresa la db config pe ftp

                     ;adresa la mapa cu DB versiuni

Global $Postgres_remote = "/DB/Postgre SQL x86/"

If @OSArch = "X64" Then    ;проверяет разрядность ОС-системы
Global $Postgres_remote = "/DB/Postgre SQL x64/"
EndIf
Global $DBServ = "/DB/DBService2/"

Global $program= _FTP_DirSetCurrent($hConn,$s_Remote)           ;setam adresa  curenta pentru programa
global $aFile = _FTP_ListToArray2D($hConn,0)                      ;atribuim sa ne arate ce se afla in mapa


                                        If GUICtrlRead($Combo2) =  $Name3 then

													$hGui = GUICreate("Release SalesExpert", 800, 600)

													GUISetBkColor(0x00E0FFFF)

														GUICtrlCreateLabel ("Data Base Config" ,5,10,200,20)

															GUICtrlCreateLabel ("DBType" ,5,38,45,20)
															$nInput1 = GUICtrlCreateInput('3', 60, 35, 200, 20)

															GUICtrlCreateLabel ("URI value" ,5,68,60,20)
															$nInput2 = GUICtrlCreateInput('net.tcp://localhost:5959/OscDBService', 60, 65, 200, 20)

															GUICtrlCreateLabel ("DB Server" ,5,98,60,20)
															$nInput3 = GUICtrlCreateInput('localhost', 60, 95, 200, 20)

															GUICtrlCreateLabel ("DB Name" ,5,128,60,20)
															$nInput4 = GUICtrlCreateInput('', 60, 125, 200, 20)

															GUICtrlCreateLabel ("DB User" ,5,158,60,20)
															$nInput5 = GUICtrlCreateInput('postgres', 60, 155, 200, 20)

															GUICtrlCreateLabel ("DB Pass" ,5,188,60,20)
															$nInput6 = GUICtrlCreateInput('', 60, 185, 200, 20,BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
															 GUICtrlSetState(-1, $GUI_DISABLE)


														GUICtrlCreateLabel ("Transport Service Config" ,300,10,300,20)

															GUICtrlCreateLabel ("Timer Interval" ,300,38,80,20)
															$nInput7 = GUICtrlCreateInput('60000', 375,35, 200, 20)

															GUICtrlCreateLabel ("Office Code" ,305,68,60,20)
															$nInput8 = GUICtrlCreateInput('', 375, 65, 200, 20)

															GUICtrlCreateLabel ("DB Code" ,305,98,60,20)
															$nInput9 = GUICtrlCreateInput('', 375, 95, 200, 20)

															GUICtrlCreateLabel ("DB Service'value" ,305,118,80,40)
															$nInput10 = GUICtrlCreateInput('net.tcp://localhost:5959/OscDBService', 375, 125, 200, 20)


														GUICtrlCreateLabel ("PostgreSQL:" ,295,170,300,20)

															GUICtrlCreateLabel ("Password" ,305,183,80,40)
															$nInput11 = GUICtrlCreateInput('', 375, 180, 200, 20,BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
                                                          GUICtrlSetColor(-1, 0x505050)
														GUICtrlCreateLabel ("Установить и бэк офис?" ,5,210,150,20)
															$chekbox123 = GUICtrlCreateCheckbox ("" ,170,210,20,20)



			If GUICtrlRead($chekboxTerminalsales) = $GUI_CHECKED then

															GUICtrlCreateLabel ("Terminal Service Config" ,5,240,150,20)
                                                            GUICtrlCreateLabel ("MetaUri" ,5,265,60,20)
															$nInput112 = GUICtrlCreateInput(@IPAddress1, 60, 265, 200, 20)
                                                         GUICtrlCreateLabel ("DBService" ,5,290,60,20)
															$nInput113 = GUICtrlCreateInput('net.tcp://localhost:5959/OscDBService', 60, 290, 200, 20)
														GUICtrlCreateLabel ("HHTPPort" ,5,315,60,20)
															$nInput114 = GUICtrlCreateInput('', 60, 315, 200, 20)


														GUICtrlCreateLabel ("Version program you want instal?" ,275,240,200,20)
															  GUICtrlCreateLabel ("What version prg?" ,275,270,100,30)
															$Combov = GUICtrlCreateCombo("", 375,275,200,20)
If @error Then
    MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR connect to ftp=' & @error)
 Else

For $i = 1 to $aFile[0][0]  Step 1
   GUICtrlSetData($Combov,$aFile[$i][0])
Next
EndIf

Global $db = _FTP_DirSetCurrent($hConn,$DBServ)           ;setam adresa la mapa pentru DB
global $DbFile = _FTP_ListToArray2D($hConn,0)                ;setam ca sa ne arate ce este in mapa
															  GUICtrlCreateLabel ("What version DB?" ,275,310,100,30)
															$Combod = GUICtrlCreateCombo("", 375,315,200,20)
If @error Then
    MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR connect to ftp=' & @error)
 Else

For $j = 1 to $DbFile[0][0]  Step 1
   GUICtrlSetData($Combod,$DbFile[$j][0])
Next
 EndIf


 Global $pg = _FTP_DirSetCurrent($hConn,$Postgres_remote)           ;setam adresa la mapa pentru postgres
global $pgFile = _FTP_ListToArray2D($hConn,0)
															  GUICtrlCreateLabel ("What version PG?" ,275,345,100,30)
															$Combopg = GUICtrlCreateCombo("", 375,350,200,20)

If @error Then
    MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR connect to ftp=' & @error)
 Else

For $k = 1 to $pgFile[0][0]  Step 1
   GUICtrlSetData($Combopg,$pgFile[$k][0])
Next
 EndIf

Else

															GUICtrlCreateLabel ("Version program you want instal?" ,5,240,200,20)
															  GUICtrlCreateLabel ("What version prg?" ,5,270,100,30)
															$Combov = GUICtrlCreateCombo("", 105,275,200,20)
If @error Then
    MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR connect to ftp=' & @error)
 Else

For $i = 1 to $aFile[0][0]  Step 1
   GUICtrlSetData($Combov,$aFile[$i][0])
Next
EndIf

Global $db = _FTP_DirSetCurrent($hConn,$DBServ)           ;setam adresa la mapa pentru DB
global $DbFile = _FTP_ListToArray2D($hConn,0)                ;setam ca sa ne arate ce este in mapa
															  GUICtrlCreateLabel ("What version DB?" ,5,310,100,30)
															$Combod = GUICtrlCreateCombo("",105,315,200,20)
If @error Then
    MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR connect to ftp=' & @error)
 Else

For $j = 1 to $DbFile[0][0]  Step 1
   GUICtrlSetData($Combod,$DbFile[$j][0])
Next
 EndIf


 Global $pg = _FTP_DirSetCurrent($hConn,$Postgres_remote)           ;setam adresa la mapa pentru postgres
global $pgFile = _FTP_ListToArray2D($hConn,0)
															  GUICtrlCreateLabel ("What version PG?" ,5,345,100,30)
															$Combopg = GUICtrlCreateCombo("",105,350,200,20)

If @error Then
    MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR connect to ftp=' & @error)
 Else

For $k = 1 to $pgFile[0][0]  Step 1
   GUICtrlSetData($Combopg,$pgFile[$k][0])
Next
 EndIf


															 EndIf
GUISetState()
                                                          GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
														$next = GUICtrlCreateButton ("Далее!",200,500,100,20)
														$cancel1 = GUICtrlCreateButton ( "Отмена",320,500,100,20)
													While 1
															$msg = GUIGetMsg()
															Select
																Case $msg=$cancel
																     exit
																case $msg=$next
                                                                     GUISetState(@SW_HIDE)
																	 _GDIPlus_Startup()    ;тут я поставил часть того что вы мне дали, функций внизу кода.
Global Const $STM_SETIMAGE1 = 0x0172
Global $iW = 380, $iH = 260
Global $hG = GUICreate("Loading", $iW, $iH, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
Global $cPic = GUICtrlCreatePic("", 0, 0, $iW, $iH)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()

Global $hHBmp_BG, $hB, $iPerc = 0, $iSleep = 20, $fPower = 4

GUIRegisterMsg($WM_TIMER, "PlayAnim")
DllCall("user32.dll", "int", "SetTimer", "hwnd", $hG, "int", 0, "int", $iSleep, "int", 0)
Global $hHBmp_BG, $hB, $iSleep = 20, $k
$iTimerID = _Timer_SetTimer($hG, $iSleep, '_PlayAnim')
Do
    Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			  _Quite(1)
;~             GUIRegisterMsg($WM_TIMER, "")
;~             _WinAPI_DeleteObject($hHBmp_BG)
;~             _GDIPlus_Shutdown()
;~             GUIDelete()
;~             Exit
    EndSwitch
	  Sleep(30)
    $k += 1
    ToolTip('Нажмите "ESC" для выхода.', Default, Default, 'Скрипт Работает: ' & $k & '%')
    If $k = 100 Then
        _Quite()
        MsgBox(262144 + 64, 'Сообщение!', 'Программа установлена!')
        Exit
    EndIf
Until False

																						  DirCreate("C:\IS\SalesExpert")
																						  DirCreate("C:\IS\SalesExpertT")
																						  DirCreate("C:\IS\OscDBService")

																						Local $oscDB = "C:\IS\OscDBService"
																						Local $SEt = "C:\IS\SalesExpertT"
																						Local $SE = "C:\IS\SalesExpert"

																					   Global $localFile = @ScriptDir & GUICtrlRead($Combov)      ;adresa failu de la programa pe comp
																					   Global $DBvFile = @ScriptDir & GUICtrlRead($Combod)       ;adresa la db fail pe com
																					   Global $PGvFile = @ScriptDir & GUICtrlRead($Combopg)              ;adresa la fisier la postgres pe comp
																					   Global $Tfile = "C:\IS\SalesExpertT\Osc.Transport.Service.exe.config"    ;adresa la config tra pe comp
																					   Global $DBfile = "C:\IS\OscDBService\Osc.DB.Service.exe.config"            ;adresa la db config pe comp
																					   Global $s_RemoteFile = ($s_Remote & GUICtrlRead($Combov))           ;adresa la fisier ales de la programa pe ftp
																					   Global $DB_RemoteFile = ($DBServ & GUICtrlRead($Combod))          ;adresa la db fisier ales pe ftp
																					   Global $PG_RemoteFile = ($Postgres_remote & GUICtrlRead($Combopg)) ;adresa la postgres fisier ales pe ftp
																					  Global $fisprog = _FTP_FileGet ($hConn,$s_RemoteFile,$localFile)        ;descarcam pe comp fisieru cu programa
																					  Global $fisDBS = _FTP_FileGet ($hConn,$DB_RemoteFile,$DBvFile)              ;descarcam pe comp sisieru co db programa
																					  Global $fisPG = _FTP_FileGet ($hConn,$PG_RemoteFile,$PGvFile)
                                                                                      Global $fisTRa = _FTP_FileGet ($hConn,$Tr_remote,$Tfile)
																					  Global $fisDBSe = _FTP_FileGet ($hConn,$DB_remote,$DBfile)
																					If GUICtrlRead($chekboxTerminalsales) = $GUI_CHECKED then
																						   Global $Terminal_remote = "/Templates/Configurations/Sales.Remote.Service.exe.config"     ;adresa la config pentru terminal pe ftp
																						   global $fisTerminal= "C:/IS/SalesExpertT/Sales.Remote.Service.exe.config"           ;adresa la config pentru terminal pe comp
																						    Global $fisDBS = _FTP_FileGet ($hConn,$Terminal_remote,$fisTerminal)
																					EndIf
FileMove ( $localFile ,@ScriptDir & "\SalesExpert.exe")
global $sales = @ScriptDir & "\SalesExpert.exe" & " /s"
Global $rename_sales = @ScriptDir & "\SalesExpert.exe"
Global $dir_sales= " /d"
Global $fin_sales = $sales & $dir_sales & $SE
Global $finT_sales = $sales & $dir_sales & $SEt
RunWait(@ComSpec & ' /c ' & $fin_sales,@ScriptDir)
RunWait(@ComSpec & ' /c ' & $finT_sales,@ScriptDir)
FileDelete ($rename_sales)

Часть кода.
После нажатие кнопки далее делается этот скрипт но не мой основной.
Вот и мой вопрос можно сделать так чтобы выполнялся мой скрипт основной но и данная гифка?
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
можно ли пока выполняется основной скрипт...
Можно создать всплывающую подсказку в любом месте экрана
Код:
ToolTip ( "text" [, x [, y [, "title" [, icon = 0 [, options ]]]]] )

Это похоже на "MsgBox", но не останавливает выполнение скрипта и нужно его удалять, когда в нём нет надобности.
Можете попробовать
Код:
SplashTextOn ( "title", "text" [, w = 500 [, h = 400 [, x pos [, y pos [, opt = 0 [, "fontname" [, fontsz = 12 [, fontwt ]]]]]]]] )

или
Код:
SplashImageOn ( "title", "file" [, width [, height [, x pos [, y pos [, opt ]]]]] )
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
до кучи мой пример.
думаю, что сообразишь как вставить в свой код. на мой взгляд, ничего сложного
Код:
#include <GIFAnimation.au3>
#include <WindowsConstants.au3>
#include <WinAPIEx.au3>
HotKeySet('{ESC}', '_STOP')
Global $hGG, $hgif, $pr
Global $Form1 = GUICreate('Form1', 500, 300, -1, -1)
Global $BT = GUICtrlCreateButton('Старт', 10, 10, 70, 30)

GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $BT
			_Proc()
	EndSwitch
WEnd

Func _STOP()
	$pr = 0
EndFunc   ;==>_STOP

Func _Proc()
	$pr = 1
	GUISetState(@SW_HIDE, $Form1)
	_GLPR()
	Local $i = 1
	While $pr
		ConsoleWrite($i & @CRLF)
		$i += 1
		Sleep(500)
	WEnd
	_GIF_DeleteGIF($hgif)
	GUIDelete($hGG)
	GUISetState(@SW_SHOW, $Form1)
	GUISetState(@SW_RESTORE, $Form1)
EndFunc   ;==>_Proc

Func _GLPR()
	Local $sFile = @ScriptDir & '\load.gif'
	$hGG = GUICreate('', 150, 150, -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST), $Form1)
	GUISetBkColor(345)
	$hgif = _GUICtrlCreateGIF($sFile, '', 0, 0, 150, 150)
	If @error Then
		_GIF_DeleteGIF($hgif)
		GUIDelete($hGG)
		Return SetError(1)
	EndIf
	_WinAPI_SetLayeredWindowAttributes($hGG, 345, 255)
	GUISetState(@SW_SHOW, $hGG)
EndFunc   ;==>_GLPR
нужные файлы во вложении
 

Вложения

  • gif.7z
    116.9 КБ · Просмотры: 5
Автор
I

ikristya

Новичок
Сообщения
4
Репутация
0
Спасибо! есть 2 идеи как сделать, спасибо всем!
 
Верх