[VBS] Progress Bar qui ne se met pas à jour

Progress Bar qui ne se met pas à jour [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 08-02-2005 à 11:22:08    

Bonjour,
 
J'ai un petit souci avec ma gestion de la progression de l'exécution de mon code.
J'autilise une page HTML pour afficher la sortie standard d'un script de la manière suivante:

Set oExec = shell.Exec("cscript.exe " & Chr(34) & ".\create_groupe_v2.vbs" & Chr(34) & " " & Chr(34) & travail(i) & Chr(34) & " //NoLogo" )
While oExec.Status = 0
   If Not oExec.StdOut.AtEndOfStream Then 'text = text & oExec.StdOut.Read(1)
      char = oExec.StdOut.Read(1)
      If char <> "" Then
         If char = vbCR Or char = vbLF Then char = "<BR>" & vbCRLF
         text = text & char
      End if
   End If
   oIE.Document.Body.InnerHTML = HTML & "Création des groupes de " & travail(i) & " (" & Now & " )<BR>" & text
Wend


 
Comme vous pouvez le voir, il y a un affichage de l'heure courante. On voit bien que les secondes défilent tranquillement tant qu'il y a une activité sur la sortie standard mais malheureusement, le script lancé fait un

WScript.Sleep 1200000

pour attendre que les controleurs de domaine se répliquent correctement.
Et là, mon affichage se met en attente, les secondes ne défilent plus du tout. Etant donné les lignes de codes indiquées plus haut, je m'attendait à voir ma page HTML clignoter comme une folle avec les secondes qui défilent mais non, tout reste figé!!! Pendant 20 minutes...
 
Quelqu'un aurait-il une explication à cet étrange phénomène???
 
Dans l'attente de vos lumières.
Daroylan.
Un OS pour les gouverner tous, un OS pour les trouver,  
Un OS pour les amener tous et dans les ténèbres les lier  
Au pays de Redmond où s'étendent les Ombres.

Reply

Marsh Posté le 08-02-2005 à 11:22:08   

Reply

Marsh Posté le 08-02-2005 à 14:21:09    

ben il faut lançer 2 thread l'1 qui lance ton script et l'autre ta barre de progression.....et la tu auras l'effet voulu..
 
 

Reply

Marsh Posté le 08-02-2005 à 15:04:33    

phobos72 a écrit :

ben il faut lançer 2 thread l'1 qui lance ton script et l'autre ta barre de progression.....et la tu auras l'effet voulu..


 
Comment fais-tu pour lancer 2 threads dans un VBS???? Il faudrait que je lance le script de gestion de la page HTML avec un

shell.Exec

mais là, je ne vois pas comment lier l'affichage de StdOut du script dans le page HTML....
 
J'ai bien peur que ta proposition ne soit trop compliquée pour moi.
Donne un exemple de lancement de 2 threads que je teste de mon côté.
 
Merci.
Daroylan.
Un OS pour les gouverner tous, un OS pour les trouver,  
Un OS pour les amener tous et dans les ténèbres les lier  
Au pays de Redmond où s'étendent les Ombres.


Message édité par Daroylan le 08-02-2005 à 15:04:51
Reply

Marsh Posté le 08-02-2005 à 16:51:41    

ben sous vbs je sais pas mais sous vb.net ça marche bien..éffectivement je ne connais pas vbs mais si tu pouvais lançer 2 processus en même temps....
j'avais eu le même probleme que toi en lançant des données vers une imprimante industrielle et une barre de progression simultanément:la barre figeait comme dans ton cas jusqu'a ce que l'executable de gestion d'imprimante "rende" la main ce qui débloquait la barre de progression...


Message édité par Profil supprimé le 08-02-2005 à 16:52:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed