Page 1 sur 1

Affichage super simpliste d'une Barre de progression

Posté : mar. 24 mars 2020 15:34
par Izarra6492
Bonjour,

dans un but cosmétique et convivial, je recherche une solution super simple et efficace qui me premettrait d'insérer une progressbar, ou une bannière défilante, ou un gif animé pendant l'éxécution d'un batch lancé auparavant !
je suis en train de finaliser un script dans lequel il ne me reste plus qu'à intégrer cela si possible !

dit d'une autre manière :
- lancement d'une commande Shellexecute pour exécuter un batch dont le temps de traitement prendra 7 à 30 secondes, en fonction de la machine sur laquelle on se trouve !
- le résultat de ce batch est la création d'un fichier TXT (result.txt)
- ensuite, j'affiche les détails de ce fichier TXT dans une GUI pour traitement ultérieur

pendant l'exécution de ce batch, j'aimerais pouvoir afficher quelque chose qui indique que le travail est en cours...
soit un Gif animé (mais j'ai vu que ce n'était pas bien pris en charge avec les commandes Splash
soit une GUI dans laquelle je pourrais insérer une progress bar (avec un temps max à définir)
idéalement, rajouter quelque chose dans la fonction SplashText (ou MsgBox) du type une barre de progression qui va de 0 à 100% sur un temps de 30s max serait top !
toute opinion la bienvenue !

merci !! :)

Code : Tout sélectionner

#include <ColorConstants.au3>
#include <FontConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#Include <File.au3>
#Include <Array.au3>


HotKeySet( "{ESC}", "_ExitESC")
global $MyCommand="MyBat.bat"

MyProg()
MsgAttente()
Exit

Func MyProg()
   filedelete("result.txt")
filedelete($mycommand)
Filewriteline($mycommand,"Timeout 10")
FileWriteline($Mycommand,"echo Item=MAG1 >Result.txt")
ShellExecute($MyCommand,"","","",@SW_HIDE)    ; app1\install.cmd , etc
EndFunc


Func MsgAttente()
;SplashImageOn("Wait","source.gif")
SplashTextOn("Collecting System Datas","Please Wait...",800,600)
For $i=1 to 5
If not FileExists("Result.txt") then
							   sleep(4000)
   							 Else
									;MsgBox(0,"Leaving",$i,2)
											$i=21
EndIf
Next
splashOff()

EndFunc

Re: Affichage super simpliste d'une Barre de progression

Posté : mar. 24 mars 2020 20:47
par Tlem
Bonsoir Izarra6492.
Avant de poser des questions sur le forum, un minimum de recherches serait bienvenu car ce type de demande a déjà été abordé.

Bonnes recherches.

Re: Affichage super simpliste d'une Barre de progression

Posté : mer. 08 avr. 2020 11:35
par Anthony
Bonjour Izarra6492,

Voici un exemple, je cherche encore pour en intégrer une dans une StatusBar redimensionnable avec un label :roll:
Si je peu t'aider, je vais mettre à jour ma signature pour mon UDF :wink:

En attendant voici ce petit bout de code trouvé ici :P https://www.autoitscript.com/forum/topi ... ent=920667

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
;~ #Region ### START Koda GUI section ### Form=


$hGUI			= GUICreate("GUI", 600, 250)				; W=600	H=250

Local $X=150, $Y=25, $W=200, $H=20

$idProgressBar	= GUICtrlCreateProgress($X, $Y, $W, $H)	; X=100 Y=25 W=400 H=20

$hGUI_ForLabel	= GUICreate("", $W, $H-2, $X, $Y+2, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TRANSPARENT, $WS_EX_MDICHILD), $hGUI)	; W=400 H=17 X=100 Y=24
GUISetBkColor(0x989898, $hGUI_ForLabel)
Local $StatusBarEx_Object	= GUICtrlCreateLabel("0", 0, 0, $W, $H-3, $SS_CENTER + $SS_CENTERIMAGE)	; $SS_CENTER, $SS_CENTERIMAGE ; X=0 Y=0 W=400 H=17
GUICtrlSetFont(-1, 9)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
_WinAPI_SetLayeredWindowAttributes( $hGUI_ForLabel, 0x989898)
GUISetState(@SW_SHOWNA, $hGUI_ForLabel)
GUISetState(@SW_SHOW, $hGUI)
#EndRegion ### END Koda GUI section ###

For $i = 0 To 100
    GUICtrlSetData($idProgressBar, $i)
    GUICtrlSetData($StatusBarEx_Object, $i & ' %')
    Sleep(25)
Next

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Re: Affichage super simpliste d'une Barre de progression

Posté : mer. 08 avr. 2020 23:49
par Tlem
@Anthony
Comme l'a dit Izarra6492, il s'agit d'afficher une barre de progression lors de l'exécution d'un batch qui va mettre plus ou moins de temps en fonction de la machine.
Du coup une barre de progression qui va de 0 à 100% est plutôt mal appropriée pour ce type de demande.

De plus, comme indiqué à Izarra6492 le sujet à largement été abordé sur ce forum et il y a un topic spécifique pour cela : /viewtopic.php?f=6&t=910
Perso, je verrais bien ce type de Barre de progression : /viewtopic.php?p=56685#p54332 :bisou:

Après, dans le sujet indiqué, il y en a des super chouettes. On en trouve même en GDI. :P

Re: Affichage super simpliste d'une Barre de progression

Posté : jeu. 16 avr. 2020 23:52
par Anthony
OK désolé j'ai mal compris la chose sorry...