Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2931 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Lancer IE mais impossible de gerer la fin du chargement de la page !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lancer IE mais impossible de gerer la fin du chargement de la page !

n°267636
casquetta
Posté le 11-12-2002 à 22:24:41  profilanswer
 

Voila je cherche a faire un programme qui lance une fenêtre IE, qui attend le chargement de celle ci puis qui fait des SendKeys.send dessus
 
Le probleme c que la lancé c pas trop dur y'a Shell()
Mais apres impossible de lui faire attendre le chargement , a la rigeur meme mettre un sorte de timer qui attend genre 20sec pour etre sur que la page (sleep(20000) ) est bien chargé, mais ca fait planté le prog
 
personne a une idée ?
Thx

mood
Publicité
Posté le 11-12-2002 à 22:24:41  profilanswer
 

n°267671
casquetta
Posté le 11-12-2002 à 23:25:12  profilanswer
 

casquetta a écrit :

Voila je cherche a faire un programme qui lance une fenêtre IE, qui attend le chargement de celle ci puis qui fait des SendKeys.send dessus
 
Le probleme c que la lancé c pas trop dur y'a Shell()
Mais apres impossible de lui faire attendre le chargement , a la rigeur meme mettre un sorte de timer qui attend genre 20sec pour etre sur que la page (sleep(20000) ) est bien chargé, mais ca fait planté le prog
 
personne a une idée ?
Thx


 
UP !! plz

n°268059
MagicBuzz
Posté le 12-12-2002 à 14:08:06  profilanswer
 

Fait pas comme ça.
 
Crée un prog avec une form assez grande.
Dedans, crée un objet IE (vivi, tu peux intégrer IE à un programme)
 
Ensuite, tu mets :
 
ie.url = 'http://www.yahoo.com'
do while ie.readystate <> 0
   doevents
loop
 
Puis pour les snedkeys, ben je crois que tu peux pas en faire, mais tu peux éxécuter des fonctions javascript depuis le vb, hors si mes souvenirs sont bons, y'a une fonction js qui permet d'envoyer des caractères dans le document pour simuler une personne qui tape ou qui bouge la souris.
 
Et l'avantage de ce système de IE intégré, c'est que tu peux donc interagir de façon très poussée avec le programme, et surtout, tu peux tout reskinner comme tu veux (par défaut, seul la zone d'affichage est visible, ce qui fait que tu peux tout changer, barre d'url, menus, raccourcis, etc.)

n°268061
lorill
Posté le 12-12-2002 à 14:10:01  profilanswer
 

MagicBuzz a écrit :


Et l'avantage de ce système de IE intégré, c'est que tu peux donc interagir de façon très poussée avec le programme, et surtout, tu peux tout reskinner comme tu veux


si tu me trouves comment piloter completement l'impression (mise en page & cie), je te paye une biere.

n°268102
MagicBuzz
Posté le 12-12-2002 à 14:35:13  profilanswer
 

Bah ça reste IE.
 
Ce que je veux dire par le fait que c'est très poussé, c'est que je programme a accès à toutes les fonctions/activeX/applets java qu'il y a dans la page, aux cookies etc, ce qui fait qu'on peut faire des applis très poussées d'automatisation de saisie, d'audit, ou de tests automatiques de site par exemple.

n°268185
casquetta
Posté le 12-12-2002 à 15:46:32  profilanswer
 

MagicBuzz a écrit :

Fait pas comme ça.
 
Crée un prog avec une form assez grande.
Dedans, crée un objet IE (vivi, tu peux intégrer IE à un programme)
 
Ensuite, tu mets :
 
ie.url = 'http://www.yahoo.com'
do while ie.readystate <> 0
   doevents
loop
 
Puis pour les snedkeys, ben je crois que tu peux pas en faire, mais tu peux éxécuter des fonctions javascript depuis le vb, hors si mes souvenirs sont bons, y'a une fonction js qui permet d'envoyer des caractères dans le document pour simuler une personne qui tape ou qui bouge la souris.
 
Et l'avantage de ce système de IE intégré, c'est que tu peux donc interagir de façon très poussée avec le programme, et surtout, tu peux tout reskinner comme tu veux (par défaut, seul la zone d'affichage est visible, ce qui fait que tu peux tout changer, barre d'url, menus, raccourcis, etc.)


 
Ok merci bien je vais essayé
 
et ta une idée pour la fonction Javascript qui permet d'envoyer des evenement clavier a ce fameux ie ?
 
Merci bien

n°268192
MagicBuzz
Posté le 12-12-2002 à 15:51:46  profilanswer
 

En fait, après test, t'as juste à faire un sendkey sur l'objet IE, c'est encore plus simple :D
 
J'ai pas essayé, mais il doit y avoir moyen de faire un sendkey différent pour chaque objet de la page en passant en paramètre l'objet lui-même.

n°268195
casquetta
Posté le 12-12-2002 à 15:55:15  profilanswer
 

MagicBuzz a écrit :

En fait, après test, t'as juste à faire un sendkey sur l'objet IE, c'est encore plus simple :D
 
J'ai pas essayé, mais il doit y avoir moyen de faire un sendkey différent pour chaque objet de la page en passant en paramètre l'objet lui-même.


 
- Euh... le probleme et que je trouve pas lobjet IE dans ma barre dobjet Visual Studio ?
 
can you help me ?
 
- Autre blem, le DoEvents() n'est pas reconnu ? faut le declarer ?


Message édité par casquetta le 12-12-2002 à 15:58:07
n°268197
MagicBuzz
Posté le 12-12-2002 à 15:57:43  profilanswer
 

Click droit > Ajouter un composant
 
Là dans le premier onglet, tu cherches "Microsoft Internet Controls"
 
L'icône est une petite planète terre.
 
Ensuite tu clique dessus, puis du dessine un rectangle dans ta form :)
 
PS: Attends, je te donne aussi la syntaxe pour l'appeler sans avoir besoin de form (dans une macro Excel par exemple)

n°268199
MagicBuzz
Posté le 12-12-2002 à 16:01:09  profilanswer
 

Voilà, pour créer la version "muette" du truc :
 

Code :
  1. Set inet = CreateObject("InternetExplorer.Application" )


 
Par contre, du coup, je sais pas s'il va aimer que tu lui envoie des caractères avec sendkey... A tester...
 
Sinon, petit exemple pour aller sur une URL, attendre le chargement de la page, et lires les données contenues dans un DIV :
 

Code :
  1. inet.Navigate ("http://xxx.xxx.xxx.xxx/logistics/stocks/otr_span.asp" )
  2.     Do While Not inet.ReadyState = READYSTATE_COMPLETE
  3.         DoEvents
  4.     Loop
  5.     strOTR_span = inet.Document.all.otr_span.innerHTML


 
PS: Je sais plus quelle est la valeur de la constante "READYSTATE_COMPLETE" :D

mood
Publicité
Posté le 12-12-2002 à 16:01:09  profilanswer
 

n°268201
MagicBuzz
Posté le 12-12-2002 à 16:02:26  profilanswer
 

casquetta a écrit :


 
- Euh... le probleme et que je trouve pas lobjet IE dans ma barre dobjet Visual Studio ?
 
can you help me ?
 
- Autre blem, le DoEvents() n'est pas reconnu ? faut le declarer ?


DoEvents pas reconnu :??:
 
PS: Pas de parenthèses.
 
Sinon, c koi que tu fais exactement ? Un prog VBS ? Une page ASP ? Un prog VB ? Une macro Office ?

n°268202
casquetta
Posté le 12-12-2002 à 16:03:58  profilanswer
 

MagicBuzz a écrit :

Voilà, pour créer la version "muette" du truc :
 

Code :
  1. Set inet = CreateObject("InternetExplorer.Application" )


 
Par contre, du coup, je sais pas s'il va aimer que tu lui envoie des caractères avec sendkey... A tester...
 
Sinon, petit exemple pour aller sur une URL, attendre le chargement de la page, et lires les données contenues dans un DIV :
 

Code :
  1. Ok merci tu commences a bien me plaire lol
  2. le probleme est que j'utilise Visual Studio .Net mais je pense pas que ca pose probleme cependant doevents n'est pas reconnu par exemple
  3. et je trouve toujours pas ton composant est ce que ca c bon :
  4. Diem IE As Object
  5. IE = CreateObject("InternetExplorer.Application" )
  6. IE.Navigate("http://www.xxxxxx.com" )
  7. IE.Visible = True
  8.     inet.Navigate ("http://xxx.xxx.xxx.xxx/logistics/stocks/otr_span.asp" )
  9.     Do While Not inet.ReadyState = READYSTATE_COMPLETE
  10.         DoEvents
  11.     Loop
  12.     strOTR_span = inet.Document.all.otr_span.innerHTML


 
PS: Je sais plus quelle est la valeur de la constante "READYSTATE_COMPLETE" :D

n°268203
casquetta
Posté le 12-12-2002 à 16:04:58  profilanswer
 

MagicBuzz a écrit :


DoEvents pas reconnu :??:
 
PS: Pas de parenthèses.
 
Sinon, c koi que tu fais exactement ? Un prog VBS ? Une page ASP ? Un prog VB ? Une macro Office ?


 
bah il ajoute tout seul les parentheses ce con
Bah jaimerais bien que ce soit un prog Visual Basic qui lance une page web et qui envoie des SendKeys dessus comme un utilisateur standart
 
maintenant je peut me passé de VB et faire autre chose si c mieux

n°268206
MagicBuzz
Posté le 12-12-2002 à 16:07:06  profilanswer
 

Après tests, DoEvents ne fonctionne en effet pas quand tu fais un script VBS, ni une page ASP.
 
Par contre, pour une macro Office ou un Programme VB, aucun problème, la fonction existe.

n°268207
MagicBuzz
Posté le 12-12-2002 à 16:08:14  profilanswer
 

C'est quoi ta version de VB :heink:
 
Normalement, y'a pas de problème, DoEvents est une fonction tout à fait standard de VB...

n°268208
casquetta
Posté le 12-12-2002 à 16:08:22  profilanswer
 

MagicBuzz a écrit :

Après tests, DoEvents ne fonctionne en effet pas quand tu fais un script VBS, ni une page ASP.
 
Par contre, pour une macro Office ou un Programme VB, aucun problème, la fonction existe.


 
ca ca a l'air de marcher par contre
System.Windows.Forms.Application.DoEvents()  
 
Mais maintenant j'ai ca :
 

Code :
  1. IE = CreateObject("InternetExplorer.Application" )
  2.         IE.Navigate("http://www.skyrock.com/rencontres/" )
  3.         IE.Visible = True
  4.         Do While IE.readystate <> 0
  5.             System.Windows.Forms.Application.DoEvents()
  6.         Loop


 
Comment jenvoie un sendkey la dessus et comment lui donné le focus ?

n°268210
MagicBuzz
Posté le 12-12-2002 à 16:11:08  profilanswer
 

Euh... OK...
 
Donc c'est pas du VB, mais du VB.NET !
 
C pas tu tout la même chose, c'est une sorte de C++ avec les mots clés de VB...
 
Marchera pas :D
 
Passe au C#, et demande de l'aide à ce niveau, moi je peux pas t'aider sous ce langage, mais tu devrais trouver de l'aide sans problème ;)

n°268212
MagicBuzz
Posté le 12-12-2002 à 16:13:19  profilanswer
 

Ben c simple, déjà, affiche dans une boîte de dialogue le contenu de :
 
IE.document.body.innerHTML
 
Histoire de voir si la page est correctement chargée.
 
Ensuite, pour le coup du sendkey, chais pas comment c'est en VB.NET
 
A priori, un truc genre :
 
System.IO.xxxxxxx.SendKey([object], [ascii_code])


Message édité par MagicBuzz le 12-12-2002 à 16:14:14
n°268214
casquetta
Posté le 12-12-2002 à 16:14:02  profilanswer
 

MagicBuzz a écrit :

Euh... OK...
 
Donc c'est pas du VB, mais du VB.NET !
 
C pas tu tout la même chose, c'est une sorte de C++ avec les mots clés de VB...
 
Marchera pas :D
 
Passe au C#, et demande de l'aide à ce niveau, moi je peux pas t'aider sous ce langage, mais tu devrais trouver de l'aide sans problème ;)


 
Nan mais meme sur Studio.Net tu peut faire du VB basique je crois et même du C++ Basique
 
La c bon j'ai le code qu'il faut
cepenant je sais pas comment envoyé le SendKeys a mon objet IE
 
(cf code du dessus)

n°268217
MagicBuzz
Posté le 12-12-2002 à 16:16:53  profilanswer
 

Ben là ton code, c'est pas du VB mais du VB.NET ;)
 
Sinon, pour le sendkey, aucune idée.
 
Peut-être dans les bibliothèques :
 
System.IO
Application.Forms
 
Logiquement, c'est une fonction qui prends en paramètres au moins deux paramètres :
-> L'objet qui doit recevoir le caractère
-> Le code ASCII du caractère à envoyer

n°268219
casquetta
Posté le 12-12-2002 à 16:18:26  profilanswer
 

MagicBuzz a écrit :

Ben là ton code, c'est pas du VB mais du VB.NET ;)
 
Sinon, pour le sendkey, aucune idée.
 
Peut-être dans les bibliothèques :
 
System.IO
Application.Forms
 
Logiquement, c'est une fonction qui prends en paramètres au moins deux paramètres :
-> L'objet qui doit recevoir le caractère
-> Le code ASCII du caractère à envoyer


 
Merci l'ami jvais allé voir ca
 
jespere que je vais trouver thx :jap: :jap:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Lancer IE mais impossible de gerer la fin du chargement de la page !

 

Sujets relatifs
Ouvrir une page de cadre avec autre chose que les pages par défaut ..Serveur local impossible de passer des variable par url [résolu]
Enregistrement impossibleCompteur de page !
appeler l'explorateur dans une page htmlComment supprimé un cookies à l'ouverture d'une page ?
[php] peut on mettre 3 listbox differentes sur la meme page ?est-il possible d'enregistrer une page ASP ?
bonsoir, détection automatique de la fermeture d'une page...Chargement de fichier *.so sous Linux
Plus de sujets relatifs à : Lancer IE mais impossible de gerer la fin du chargement de la page !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR