Progress Bar qui ne se met pas à jour [VBS] - VB/VBA/VBS - Programmation
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..
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.
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...
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.