Dans une Form en Csharp j'ai une fenêtre Webbrowser. Dans cette fenêtre
il s'affiche souvent des pages Web avec des frames. Mon problème réside
dans le fait que un simple "while (axWebBrowser11.Busy)" ne suffit pas
car cette ligne n'attend pas la fin du chargement de TOUTES les frames.
Comme mon code doit travailler sur le contenu des frames, ça plante mon
programme si une des frames n'est pas chargée.
Je dois donc faire appel à une fonction "lourde" qui prend 100% de ma CPU :
for (int boucle1=0; boucle1<=fin; boucle1++)
{
for (int boucleinterne=0; boucleinterne<=1000; boucleinterne++)
{
Application.DoEvents();
}
}
Comment puis-je faire pour attendre la fin du chargement de toutes les
frames avant de passer à la suite du programme ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Simon Mourier [MS]
Ce n'est pas la bonne méthode. Il faut plutôt se connecter aux évènements crées par IE (objet WebBrowser), comme par exemple NavigateComplete, NavigateComplete2, etc...
"Nicolas" a écrit dans le message de news: edrGqdO$
Bonjour,
Voici mon problème :
Dans une Form en Csharp j'ai une fenêtre Webbrowser. Dans cette fenêtre il s'affiche souvent des pages Web avec des frames. Mon problème réside dans le fait que un simple "while (axWebBrowser11.Busy)" ne suffit pas car cette ligne n'attend pas la fin du chargement de TOUTES les frames. Comme mon code doit travailler sur le contenu des frames, ça plante mon programme si une des frames n'est pas chargée.
Je dois donc faire appel à une fonction "lourde" qui prend 100% de ma CPU :
for (int boucle1=0; boucle1<=fin; boucle1++) { for (int boucleinterne=0; boucleinterne<00; boucleinterne++) {
Application.DoEvents(); } }
Comment puis-je faire pour attendre la fin du chargement de toutes les frames avant de passer à la suite du programme ?
Merci Nicolas
Ce n'est pas la bonne méthode. Il faut plutôt se connecter aux évènements
crées par IE (objet WebBrowser), comme par exemple NavigateComplete,
NavigateComplete2, etc...
"Nicolas" <nico.trash@gmail.com> a écrit dans le message de news:
edrGqdO$EHA.824@TK2MSFTNGP11.phx.gbl...
Bonjour,
Voici mon problème :
Dans une Form en Csharp j'ai une fenêtre Webbrowser. Dans cette fenêtre il
s'affiche souvent des pages Web avec des frames. Mon problème réside dans
le fait que un simple "while (axWebBrowser11.Busy)" ne suffit pas car
cette ligne n'attend pas la fin du chargement de TOUTES les frames. Comme
mon code doit travailler sur le contenu des frames, ça plante mon
programme si une des frames n'est pas chargée.
Je dois donc faire appel à une fonction "lourde" qui prend 100% de ma CPU
:
for (int boucle1=0; boucle1<=fin; boucle1++)
{ for (int boucleinterne=0; boucleinterne<00; boucleinterne++)
{
Application.DoEvents();
}
}
Comment puis-je faire pour attendre la fin du chargement de toutes les
frames avant de passer à la suite du programme ?
Ce n'est pas la bonne méthode. Il faut plutôt se connecter aux évènements crées par IE (objet WebBrowser), comme par exemple NavigateComplete, NavigateComplete2, etc...
"Nicolas" a écrit dans le message de news: edrGqdO$
Bonjour,
Voici mon problème :
Dans une Form en Csharp j'ai une fenêtre Webbrowser. Dans cette fenêtre il s'affiche souvent des pages Web avec des frames. Mon problème réside dans le fait que un simple "while (axWebBrowser11.Busy)" ne suffit pas car cette ligne n'attend pas la fin du chargement de TOUTES les frames. Comme mon code doit travailler sur le contenu des frames, ça plante mon programme si une des frames n'est pas chargée.
Je dois donc faire appel à une fonction "lourde" qui prend 100% de ma CPU :
for (int boucle1=0; boucle1<=fin; boucle1++) { for (int boucleinterne=0; boucleinterne<00; boucleinterne++) {
Application.DoEvents(); } }
Comment puis-je faire pour attendre la fin du chargement de toutes les frames avant de passer à la suite du programme ?
Merci Nicolas
Nicolas
Merci,
Mais etant un peu legé en C# et en Winform, je ne vois pas comment faire inter-agir mon programme qui doit attendre la fin du chargement de toutes les frames sur l'axWebbrowser et l'event NavigateComplete2. Si j'ai bien compris, le code "contenu dans" l'event NavigateComplete2 se lance qd toute la page est chargé (frames ou pas) mais comment dois-je coder l'attente de ce chargement dans mon programe principal qui lui attend la fin de ce chargement pour poursuivre ?
"Simon Mourier [MS]" wrote:
Ce n'est pas la bonne méthode. Il faut plutôt se connecter aux évènements crées par IE (objet WebBrowser), comme par exemple NavigateComplete, NavigateComplete2, etc...
"Nicolas" a écrit dans le message de news: edrGqdO$ > Bonjour, > > Voici mon problème : > > Dans une Form en Csharp j'ai une fenêtre Webbrowser. Dans cette fenêtre il > s'affiche souvent des pages Web avec des frames. Mon problème réside dans > le fait que un simple "while (axWebBrowser11.Busy)" ne suffit pas car > cette ligne n'attend pas la fin du chargement de TOUTES les frames. Comme > mon code doit travailler sur le contenu des frames, ça plante mon > programme si une des frames n'est pas chargée. > > Je dois donc faire appel à une fonction "lourde" qui prend 100% de ma CPU > : > > for (int boucle1=0; boucle1<=fin; boucle1++) > { for (int boucleinterne=0; boucleinterne<00; boucleinterne++) > { > > Application.DoEvents(); > } > } > > > Comment puis-je faire pour attendre la fin du chargement de toutes les > frames avant de passer à la suite du programme ? > > Merci > Nicolas
Merci,
Mais etant un peu legé en C# et en Winform, je ne vois pas comment faire
inter-agir mon programme qui doit attendre la fin du chargement de toutes les
frames sur l'axWebbrowser et l'event NavigateComplete2.
Si j'ai bien compris, le code "contenu dans" l'event NavigateComplete2 se
lance qd toute la page est chargé (frames ou pas) mais comment dois-je coder
l'attente de ce chargement dans mon programe principal qui lui attend la fin
de ce chargement pour poursuivre ?
"Simon Mourier [MS]" wrote:
Ce n'est pas la bonne méthode. Il faut plutôt se connecter aux évènements
crées par IE (objet WebBrowser), comme par exemple NavigateComplete,
NavigateComplete2, etc...
"Nicolas" <nico.trash@gmail.com> a écrit dans le message de news:
edrGqdO$EHA.824@TK2MSFTNGP11.phx.gbl...
> Bonjour,
>
> Voici mon problème :
>
> Dans une Form en Csharp j'ai une fenêtre Webbrowser. Dans cette fenêtre il
> s'affiche souvent des pages Web avec des frames. Mon problème réside dans
> le fait que un simple "while (axWebBrowser11.Busy)" ne suffit pas car
> cette ligne n'attend pas la fin du chargement de TOUTES les frames. Comme
> mon code doit travailler sur le contenu des frames, ça plante mon
> programme si une des frames n'est pas chargée.
>
> Je dois donc faire appel à une fonction "lourde" qui prend 100% de ma CPU
> :
>
> for (int boucle1=0; boucle1<=fin; boucle1++)
> { for (int boucleinterne=0; boucleinterne<00; boucleinterne++)
> {
>
> Application.DoEvents();
> }
> }
>
>
> Comment puis-je faire pour attendre la fin du chargement de toutes les
> frames avant de passer à la suite du programme ?
>
> Merci
> Nicolas
Mais etant un peu legé en C# et en Winform, je ne vois pas comment faire inter-agir mon programme qui doit attendre la fin du chargement de toutes les frames sur l'axWebbrowser et l'event NavigateComplete2. Si j'ai bien compris, le code "contenu dans" l'event NavigateComplete2 se lance qd toute la page est chargé (frames ou pas) mais comment dois-je coder l'attente de ce chargement dans mon programe principal qui lui attend la fin de ce chargement pour poursuivre ?
"Simon Mourier [MS]" wrote:
Ce n'est pas la bonne méthode. Il faut plutôt se connecter aux évènements crées par IE (objet WebBrowser), comme par exemple NavigateComplete, NavigateComplete2, etc...
"Nicolas" a écrit dans le message de news: edrGqdO$ > Bonjour, > > Voici mon problème : > > Dans une Form en Csharp j'ai une fenêtre Webbrowser. Dans cette fenêtre il > s'affiche souvent des pages Web avec des frames. Mon problème réside dans > le fait que un simple "while (axWebBrowser11.Busy)" ne suffit pas car > cette ligne n'attend pas la fin du chargement de TOUTES les frames. Comme > mon code doit travailler sur le contenu des frames, ça plante mon > programme si une des frames n'est pas chargée. > > Je dois donc faire appel à une fonction "lourde" qui prend 100% de ma CPU > : > > for (int boucle1=0; boucle1<=fin; boucle1++) > { for (int boucleinterne=0; boucleinterne<00; boucleinterne++) > { > > Application.DoEvents(); > } > } > > > Comment puis-je faire pour attendre la fin du chargement de toutes les > frames avant de passer à la suite du programme ? > > Merci > Nicolas