IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Afficher une barre d'avancement dans une fenêtre


Sujet :

VBScript

  1. #1
    Membre très actif Avatar de Olivier.p
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut Afficher une barre d'avancement dans une fenêtre
    Bonjour,

    J'ai fait un petit script qui extrait des données de plusieurs fichiers, cependant c'est parfois long et j'aimerais afficher la progression du programme (genre ouvrir une fenêtre avec une barre qui se met à jour à chaque fois qu'un fichier est traité).

    Je ne veux pas que fenêtre bloque mon programme (wscript.echo et Msgbox sont bloquants) malheureusement je ne peux pas exécuter mon script en ligne de commande avec CScript (obligé d'utiliser Wscript...)

    Comment rendre cet affichage non bloquant s'il vous plait ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    'lut,

    J'ai été confronté à cette problématique et je n'ai pas trouvé de barre de progression ou système satisfaisant.

    Pour contourner le problème je génère un fichier ".html" que je mets à jour au fur et à mesure du déroulement de mon script.

    Pour savoir ou j'en suis, je rafraichis mon navigateur

  3. #3
    Membre très actif Avatar de Olivier.p
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut


    En fait j'viens de trouver comment utiliser cscript... J'tapais simplement pas la bonne commande tu m'étonnes qu'il ne le trouve pas...

    Je vais donc utiliser le mode console pour afficher ma barre de progression.

    Toutefois comme je suis curieux ( ) je ne mets pas résolu dan le post. En effet le must serait de pouvoir afficher la barre de progression à l'écran. J'attends donc vos réponses

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    avec un HTA ..?

    III-J. Utiliser un timer

  5. #5
    Membre très actif Avatar de Olivier.p
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Bbil ton idée est intéressante, cependant je préfèrerai dans une fenêtre message windows (comme pour une barre de chargement classique).

    Ma question serait donc plutôt comment afficher une fenêtre (windows) contenant une barre de progression qui serait non bloquante (sans utiliser du scotch et de la ficelle ).

    La solution de l'utilisation du terminal me satisfait, cette question c'est juste parce que je suis curieux

  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    salut,
    cette question c'est juste parce que je suis curieux
    alors vu comme ça : http://www.visualbasicscript.com/m_4..._/tm.htm#47471
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  7. #7
    Membre très actif Avatar de Olivier.p
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    C'est l'artillerie lourde ça

    J'ai finalement opté pour la simplicité :

    je crée une fonction jauge avec un compteur et une VAL_JAUGE. Mon compteur (cptJauge) me permet d'incrémenter mon nombre de lignes sans géner la lecture fichier et VAL_JAUGE est une valeur que je fixe (par exemple 5). si cptJauge est un multiple de VAL_JAUGE alors on affiche un "o".

    VAL_JAUGE me permet d'afficher plus ou moins de caractère en fonciton de mes besoins.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sub jauge 
    	if (cptJauge /(VAL_JAUGE) = fix( cptJauge /(VAL_JAUGE) )) then
    		wscript.stdout.write "o "
    	end if
    	cptJauge = cptJauge + 1
    end sub
    Mon script est lancé en ligne de commande via cscript et ma barre d'avancement se voit dans la console

    Voilà voilà Ce week end j'irai jeter un oeil au gros bifteak d'omen999 :p

  8. #8
    Membre expérimenté
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Par défaut
    personnellement j'utilise ce code et ca fonctionne bien sous peine d'avoir Internet Explorer :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    '__________________________________________
    'parametrage de la barre IE
    '__________________________________________
    Dim gdocProgressBar 'requis pour objet internet explorer
    Dim goieProgressBar	'requis pour objet internet explorer
    Set gdocProgressBar = Nothing
    Set goieProgressBar = Nothing
     
    '__________________________________________
    'Code
    '__________________________________________
    ProgressBar 0
    wscript.sleep 1000
    ProgressBar 20
    wscript.sleep 1000
    ProgressBar 40
    wscript.sleep 1000
    ProgressBar 60
    wscript.sleep 1000
    ProgressBar 80
    wscript.sleep 1000
    ProgressBar 100
    wscript.sleep 2000
    ProgressBar -1
     
     
    '__________________________________________
    'fonction de la progress bar
    '__________________________________________
    Sub ProgressBar(intPercent)
    	'intPercent doit rester entre 0 et 100 
    	If gdocProgressBar Is Nothing Then
    		If ((Cint(intPercent) >= 0) And (Cint(intPercent) <= 100)) Then
    			Set goieProgressBar = CreateObject("InternetExplorer.Application")
    			goieProgressBar.Offline = True
    			goieProgressBar.AddressBar = False
    			goieProgressBar.Height = 100
    			goieProgressBar.Width = 250
    			goieProgressBar.MenuBar = False
    			goieProgressBar.StatusBar = False
    			goieProgressBar.Silent = True
    			goieProgressBar.ToolBar = False
    			goieProgressBar.Navigate "about:blank"
    			Do While goieProgressBar.Busy
    				WScript.Sleep 100
    			Loop
    			'On Error Resume Next
    			Set gdocProgressBar = Nothing
    			Do Until Not gdocProgressBar Is Nothing
    				WScript.Sleep 100
    				Set gdocProgressBar = goieProgressBar.Document
    			Loop
    			gdocProgressBar.Open
    			gdocProgressBar.Write "<html><head><title>"
    			gdocProgressBar.Write "Status"
    			gdocProgressBar.Write "</title></head><body><center>"
    			gdocProgressBar.Write "<TABLE width=200 border=3 frame=box><tr><td>"
    			gdocProgressBar.Write "<TABLE id=status width=0 border=0 cellpadding=0 cellspacing=0 bgcolor=#FFFFFF>"
    			gdocProgressBar.Write "<tr><td>&nbsp</td></tr></table></td></tr></table></center></body></html>"
    			gdocProgressBar.Close
    			goieProgressBar.Visible = True			
    		Else
    			Exit Sub
    		End If
    	End If
    	'Ferme la barre d'etat
    	If Not gdocProgressBar Is Nothing Then
    		If ((Cint(intPercent) < 0) Or (Cint(intPercent) > 100)) Then
    			goieProgressBar.Visible = False
    			Set gdocProgressBar = Nothing
    			goieProgressBar.Quit
    			Set goieProgressBar = Nothing
    			Exit Sub
    		End If
    	End If
    	'met a jour la barre d'etat
    	If Cint(intPercent) = 0 Then
    		gdocProgressBar.all.status.width = "1%"
    		gdocProgressBar.all.status.bgcolor = "#FFFFFF"
    	Else
    		gdocProgressBar.all.status.width = Cstr(Cint(intPercent)) & "%"
    		gdocProgressBar.all.status.bgcolor = "#0000FF"
    	End If
    End Sub

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Citation Envoyé par orducom1 Voir le message
    'lut,

    J'ai été confronté à cette problématique et je n'ai pas trouvé de barre de progression ou système satisfaisant.

    Pour contourner le problème je génère un fichier ".html" que je mets à jour au fur et à mesure du déroulement de mon script.

    Pour savoir ou j'en suis, je rafraichis mon navigateur
    Salut,
    Je serais interessé par ta solution, j'ai essayer via la fonction iTimerID = window.setInterval("mafonction", 10000)
    mais le HTML n'est pas interprété (ma fenetre se retrouve rafraichit par le code HTML (<HTML>....<TD>....</HTML>)

    En passant par un fichier HTML lu a interval régulier, c'est pareil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. créer une liste de choix dans une barre outils
    Par rv-80 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/01/2008, 20h26
  3. Réponses: 5
    Dernier message: 10/01/2008, 08h47
  4. Réponses: 4
    Dernier message: 25/11/2006, 17h52
  5. Mettre une barre de défilement dans une CheckListBox ?
    Par Invité dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/07/2005, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo