OVH Cloud OVH Cloud

webbrowser

20 réponses
Avatar
scraper
bonjour à tous, et avant toutes choses, bonne année !

voila 2 petits soucis avec un webBrowser qui charge une page html dans ma
form :

1 je souhaiterais pauser l'exécution du code de cette form, tant que la page
n'est pas complètement chargée, mais je ne sais pas trop comment faire ?

une boucle avec :

Do While WebBorwser1.Busy
Sleep 1000
Loop

ne donnant pas les résultats escomptés


2 si la page web distante que je charge dans mon contrôle comporte une
erreur de script, comment faire pour bypasser le message d'erreur ? (objet
manquant, ou autres, dûs à un mauvais codage de la page ?

j'ai essayé de placer des On Error Resume Next, sans résultat


merci de toute aide




--
Adresse invalide
Mon site : http://scraper.chez-alice.fr
Me contacter : http://pcland.easyforum.fr/index.htm

scraper

10 réponses

1 2
Avatar
Jean-marc
"Driss HANIB" a écrit dans le message de news:
%
Bonjour JeanMarc et Scraper,



Hello Driss,

tout d'abords je vous retourne mes meilleurs voeux ainsi qu'aux membres de
la liste.



Que cette année 2007 soit riche en codes de toute sorte!

Très intéressante votre discussion sur timer, et notamment sur la perte de
ressource générée par son utilisation..
Merci



En fait, il est très simple de voir qu'un timer ne consomme quasimment
rien, en tout cas rien de mesurable:
faire un programme avec un timer, mettre l'intervalle à
(par exemple) 100. On a donc un timer qui déclenche un évènement
10 fois par seconde. Dans le timer, mettre ceci par exemple:

Private Sub Timer1_Timer()
Static t As Long

t = t + 1
If Time = "16:50:00" Then
MsgBox "coucou"
End If
End Sub

On fait donc une incrémentation et un test, 10 fois par seconde.
Compiler et lancer l'exécutable. Puis lancer le gestionnaire de tâches,
onglet processus, et faire apparaitre la colonne Temps processeur.

Puis laisser ce programme tourner aussi longtemps que
vous voulez, 24 heures ou plus.

Vous verrez que même après des dizaines d'heure, ce programme n'a même
pas consommé une seconde de temps machine.

Le controle Timer, même activé 10 fois par seconde ne consomme pour ainsi
dire rien, même avec une addition et un test. Alors avec un intervalle
de 1 seconde, autant dire que c'est impossible à mesurer, même sur des
jours ou des semaines de fonctionnement!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
scraper
Bonjour Jean-marc, dans le message
news:459d262b$0$5515$
tu disais :

Que cette année 2007 soit riche en codes de toute sorte!



Hello !

plutôt pas bien parti en ce qui me concerne lol lol
(vois plus bas .... ;-)

En fait, il est très simple de voir qu'un timer ne consomme quasimment
rien, en tout cas rien de mesurable



[...]

OK, bien compris, encore merci


donc, j'ai modifié mon porjet en ce sens, et je me trouve amené à manipuler
des heures, en utilisant Time ....

ça fonctionne plutôt pas mal, sauf un drôle de bug, qui coince mon
programme, et que l'on peut résumer ainsi :


Dim TheDate As Date
Dim SomeTime As Long

TheDate = #11:59:12 PM#
SomeTime = 590 'secondes

Debug.Print DateAdd("s", SomeTime, TheDate)


la valeur retournée est : 31/12/1899 00:09:02 !!!!

je suppose qu'au moment d'additionner 2 heures, le systeme ne sachant pas
quel est le référentiel (jour, mois, année) il indique par défaut le 31
décembre 1899 ....

y a t il un moyen de contourner ce bug ?

merci

amicalement



--
Adresse invalide
Mon site : http://scraper.chez-alice.fr
Me contacter : http://pcland.easyforum.fr/index.htm

scraper
Avatar
Driss HANIB
merci

Jean Marc,

je l'utilise dans la gestion d'un emploi du temps partagé qui se met à jour
très régulièrement et qui reste continuellement 'allumé' et j'avais peur
qu'il ne bloque trop le reste de l'UC.
je fais des accès à une base access : toutes les 5 minutes..

Driss
"Jean-marc" a écrit dans le message
de news:459d262b$0$5515$
"Driss HANIB" a écrit dans le message de news:
%
> Bonjour JeanMarc et Scraper,

Hello Driss,

> tout d'abords je vous retourne mes meilleurs voeux ainsi qu'aux membres


de
> la liste.

Que cette année 2007 soit riche en codes de toute sorte!

> Très intéressante votre discussion sur timer, et notamment sur la perte


de
> ressource générée par son utilisation..
> Merci

En fait, il est très simple de voir qu'un timer ne consomme quasimment
rien, en tout cas rien de mesurable:
faire un programme avec un timer, mettre l'intervalle à
(par exemple) 100. On a donc un timer qui déclenche un évènement
10 fois par seconde. Dans le timer, mettre ceci par exemple:

Private Sub Timer1_Timer()
Static t As Long

t = t + 1
If Time = "16:50:00" Then
MsgBox "coucou"
End If
End Sub

On fait donc une incrémentation et un test, 10 fois par seconde.
Compiler et lancer l'exécutable. Puis lancer le gestionnaire de tâches,
onglet processus, et faire apparaitre la colonne Temps processeur.

Puis laisser ce programme tourner aussi longtemps que
vous voulez, 24 heures ou plus.

Vous verrez que même après des dizaines d'heure, ce programme n'a même
pas consommé une seconde de temps machine.

Le controle Timer, même activé 10 fois par seconde ne consomme pour ainsi
dire rien, même avec une addition et un test. Alors avec un intervalle
de 1 seconde, autant dire que c'est impossible à mesurer, même sur des
jours ou des semaines de fonctionnement!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/




Avatar
Jean-marc
"scraper" a écrit dans le message de news:
%
Bonjour Jean-marc, dans le message
news:459d262b$0$5515$
tu disais :

Que cette année 2007 soit riche en codes de toute sorte!



Hello !

plutôt pas bien parti en ce qui me concerne lol lol
(vois plus bas .... ;-)

En fait, il est très simple de voir qu'un timer ne consomme quasimment
rien, en tout cas rien de mesurable



[...]

OK, bien compris, encore merci


donc, j'ai modifié mon porjet en ce sens, et je me trouve amené à
manipuler des heures, en utilisant Time ....

ça fonctionne plutôt pas mal, sauf un drôle de bug, qui coince mon
programme, et que l'on peut résumer ainsi :


Dim TheDate As Date
Dim SomeTime As Long

TheDate = #11:59:12 PM#
SomeTime = 590 'secondes

Debug.Print DateAdd("s", SomeTime, TheDate)


la valeur retournée est : 31/12/1899 00:09:02 !!!!

je suppose qu'au moment d'additionner 2 heures, le systeme ne sachant pas
quel est le référentiel (jour, mois, année) il indique par défaut le 31
décembre 1899 ....

y a t il un moyen de contourner ce bug ?



Hello,

je ne suis pas sur de comprendre. Le problème vient il
du fait qu'il te retourne une date au lieu d'une heure?

Si oui, la solution est toute trouvée:
Debug.Print Format$(DateAdd("s", SomeTime, TheDate), "hh:mm:ss")
==>>00:09:02

Est ce le problème (et la solution) ?

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Driss HANIB
Oui scraper c'estc e qu j'allais te proposer. d'extraire l'heure qui
t'intéresse seulement.

ou alors d'ajouter la date du jour(??) avant l'addition des secondes..

Driss

"Jean-marc" a écrit dans le message
de news:459e1f2e$0$15366$
"scraper" a écrit dans le message de news:
%
> Bonjour Jean-marc, dans le message
> news:459d262b$0$5515$
> tu disais :
>
>> Que cette année 2007 soit riche en codes de toute sorte!
>
> Hello !
>
> plutôt pas bien parti en ce qui me concerne lol lol
> (vois plus bas .... ;-)
>>
>> En fait, il est très simple de voir qu'un timer ne consomme quasimment
>> rien, en tout cas rien de mesurable
>
> [...]
>
> OK, bien compris, encore merci
>
>
> donc, j'ai modifié mon porjet en ce sens, et je me trouve amené à
> manipuler des heures, en utilisant Time ....
>
> ça fonctionne plutôt pas mal, sauf un drôle de bug, qui coince mon
> programme, et que l'on peut résumer ainsi :
>
>
> Dim TheDate As Date
> Dim SomeTime As Long
>
> TheDate = #11:59:12 PM#
> SomeTime = 590 'secondes
>
> Debug.Print DateAdd("s", SomeTime, TheDate)
>
>
> la valeur retournée est : 31/12/1899 00:09:02 !!!!
>
> je suppose qu'au moment d'additionner 2 heures, le systeme ne sachant


pas
> quel est le référentiel (jour, mois, année) il indique par défaut le 31
> décembre 1899 ....
>
> y a t il un moyen de contourner ce bug ?

Hello,

je ne suis pas sur de comprendre. Le problème vient il
du fait qu'il te retourne une date au lieu d'une heure?

Si oui, la solution est toute trouvée:
Debug.Print Format$(DateAdd("s", SomeTime, TheDate), "hh:mm:ss")
==>>00:09:02

Est ce le problème (et la solution) ?

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/




Avatar
scraper
Bonjour Jean-marc, dans le message
news:459e1f2e$0$15366$
tu disais :

Hello,



re ;-)

je ne suis pas sur de comprendre.



si si :-)

Le problème vient il
du fait qu'il te retourne une date au lieu d'une heure?



oui, d'une part, et aussi du format fantaisiste de cette date

Si oui, la solution est toute trouvée:
Debug.Print Format$(DateAdd("s", SomeTime, TheDate), "hh:mm:ss")
==>>00:09:02

Est ce le problème (et la solution) ?



super génial, merci ! lol

amicalement


--
Adresse invalide
Mon site : http://scraper.chez-alice.fr
Me contacter : http://pcland.easyforum.fr/index.htm

scraper
Avatar
scraper
Bonjour Jean-marc, dans le message
news:459e1f2e$0$15366$
tu disais :

je ne suis pas sur de comprendre. Le problème vient il
du fait qu'il te retourne une date au lieu d'une heure?

Si oui, la solution est toute trouvée:
Debug.Print Format$(DateAdd("s", SomeTime, TheDate), "hh:mm:ss")
==>>00:09:02




Re ! :-(

Décidément, la manipulation des dates est loin d'être une chose aisée ....

voila maintenant que si je fais un DateDiff ("s", Date1, Date2) - toujours
en manipulant des heures - et que par exemple Date1 est plus "grand" que
Date2, ça me retourne une valeur négative ..... comment alors la traiter de
manière cohérente ?

ex : si Date1 vaut 23:45:00 et Date2 vaut 00:25:15 (de tête ...)

ma fonction (basique) de conversion d'un long en heure se plante, donc je
suppose que je dois pas appréhender la chose sous le bon angle ...

une piste ne serait pas de refus :-)

amicalement



--
Adresse invalide
Mon site : http://scraper.chez-alice.fr
Me contacter : http://pcland.easyforum.fr/index.htm

scraper
Avatar
scraper
Bonjour Jean-marc, dans le message
news:459bc36c$0$21498$
tu disais :


Pour le bypass des messages d'erreur, je ne sais pas :-(



Hello !

au hasard d'un surf, je crois bien que j'ai trouvé ;-)

je pense que c'est la propriété Silent du contrôle WebBrowser qu'il faut
activer ! :-)

et en plus, c'est écrit dans l'explorateur d'objets ! :-(

Property Silent As Boolean
Membre de SHDocVw.WebBrowser
Controls if any dialog boxes can be shown

comme quoi ..... lol lol


dommage, j'ai tout réécrit cette portion de code ! :-P



amicalement

--
Adresse invalide
Mon site : http://scraper.chez-alice.fr
Me contacter : http://pcland.easyforum.fr/index.htm

scraper
Avatar
Jean-marc
"scraper" a écrit dans le message de news:
%
Bonjour Jean-marc, dans le message
news:459bc36c$0$21498$
tu disais :


Pour le bypass des messages d'erreur, je ne sais pas :-(



Hello !

au hasard d'un surf, je crois bien que j'ai trouvé ;-)

je pense que c'est la propriété Silent du contrôle WebBrowser qu'il faut
activer ! :-)

et en plus, c'est écrit dans l'explorateur d'objets ! :-(

Property Silent As Boolean
Membre de SHDocVw.WebBrowser
Controls if any dialog boxes can be shown

comme quoi ..... lol lol



Hello,

ça semble intéressant en effet! Je testerais à l'occasion.
Merci du retour d'info!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
scraper
Bonjour scraper, dans le message
news:
tu disais :

Décidément, la manipulation des dates est loin d'être une chose aisée
....
voila maintenant que si je fais un DateDiff ("s", Date1, Date2) -
toujours en manipulant des heures - et que par exemple Date1 est plus
"grand" que Date2, ça me retourne une valeur négative ..... comment
alors la traiter de manière cohérente ?

ex : si Date1 vaut 23:45:00 et Date2 vaut 00:25:15 (de tête ...)

ma fonction (basique) de conversion d'un long en heure se plante,
donc je suppose que je dois pas appréhender la chose sous le bon
angle ...
une piste ne serait pas de refus :-)



bon, laissez tomber (si toutefois .... lol lol

j'ai pris le problème sous un autre angle, et je me suis créé des fonctions
dédiées, qui traitent les heures exactement comme j'en ai besoin, et
finalement ça a l'air de rouler

merci à tous


amicalement

--
Adresse invalide
Mon site : http://scraper.chez-alice.fr
Me contacter : http://pcland.easyforum.fr/index.htm

scraper
1 2