Rester au bas de la fentre IE avec VBS - VB/VBA/VBS - Programmation
MarshPosté le 12-01-2009 à 14:29:08
Salut,
je fais actuellement un script qui execute une opé un grand nombre de fois. Pour suivre le déroulement de manière à peu près dynaique, j'utilise une fenêtre IE qui affiche les infos données par le script
comme ceci :
Dim obj_IEWindow Set obj_IEWindow = Wscript.CreateObject("InternetExplorer.Application", "IE_" ) obj_IEWindow.Navigate "about:blank" obj_IEWindow.ToolBar = 0 obj_IEWindow.StatusBar = 0 obj_IEWindow.Width = 1024 obj_IEWindow.Height = 900 obj_IEWindow.Left = 0 obj_IEWindow.Top = 0 obj_IEWindow.Visible = 1 obj_IEWindow.Document.Body.InnerHTML = "Retrieving informations. <BR /> This might take several minutes to complete."
Donc voila, ça marche très bien sauf que ... La page reste toujours bloquée sur la première ligne or, les resultats s'ajoutent par le bas, donc rapidement les infos utiles (apparition d'un code d'erreur par exemple) sont affichées dans la partie non visible de la page. Il faut utiliser l'ascenceur à la main pour descendre à la dernière ligne ... a chaque ittération de la boucle for.
Comme je ne souhaite pas inverser l'ordre d'inscription des info par
il me faut une commande pour repositionner la page IE (obj_IEWindow.Document.Body) en bas, à chaque ittération de la boucle for.
Alors ?
Comment qu'on fait ?
Autre chose : le traitement de la boucle est un peu lourd, et pendant le temps de traitement, il est impossible de manipuler (scroller) la fenetre... C'est pas mal gênant. Y'a un moyen de fluidifier ça ?
Mad
--------------- Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
Marsh Posté le 12-01-2009 à 14:29:08
Salut,
je fais actuellement un script qui execute une opé un grand nombre de fois.
Pour suivre le déroulement de manière à peu près dynaique, j'utilise une fenêtre IE qui affiche les infos données par le script
comme ceci :
Dim obj_IEWindow
Set obj_IEWindow = Wscript.CreateObject("InternetExplorer.Application", "IE_" )
obj_IEWindow.Navigate "about:blank"
obj_IEWindow.ToolBar = 0
obj_IEWindow.StatusBar = 0
obj_IEWindow.Width = 1024
obj_IEWindow.Height = 900
obj_IEWindow.Left = 0
obj_IEWindow.Top = 0
obj_IEWindow.Visible = 1
obj_IEWindow.Document.Body.InnerHTML = "Retrieving informations. <BR /> This might take several minutes to complete."
...
For Each ...
...
...
str_HTML = str_HTML & vbCrLf & "<BR>" & "Result = " & int_Result & " " & Err.Level
...
obj_IEWindow.Document.Body.InnerHTML = strHTML
Next
Donc voila, ça marche très bien sauf que ...
La page reste toujours bloquée sur la première ligne or, les resultats s'ajoutent par le bas, donc rapidement les infos utiles (apparition d'un code d'erreur par exemple) sont affichées dans la partie non visible de la page. Il faut utiliser l'ascenceur à la main pour descendre à la dernière ligne ... a chaque ittération de la boucle for.
Comme je ne souhaite pas inverser l'ordre d'inscription des info par
str_HTML = "Result = " & int_Result & " " & Err.Level & vbCrLf & "<BR>" & str_HTML
il me faut une commande pour repositionner la page IE (obj_IEWindow.Document.Body) en bas, à chaque ittération de la boucle for.
Alors ?
Comment qu'on fait ?
Autre chose : le traitement de la boucle est un peu lourd, et pendant le temps de traitement, il est impossible de manipuler (scroller) la fenetre... C'est pas mal gênant. Y'a un moyen de fluidifier ça ?
Mad
---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...