Lancer IE mais impossible de gerer la fin du chargement de la page ! - VB/VBA/VBS - Programmation
Marsh Posté le 11-12-2002 à 23:25:12
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 |
UP !! plz
Marsh Posté le 12-12-2002 à 14:08:06
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.)
Marsh Posté le 12-12-2002 à 14:10:01
MagicBuzz a écrit : |
si tu me trouves comment piloter completement l'impression (mise en page & cie), je te paye une biere.
Marsh Posté le 12-12-2002 à 14:35:13
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.
Marsh Posté le 12-12-2002 à 15:46:32
MagicBuzz a écrit : Fait pas comme ça. |
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
Marsh Posté le 12-12-2002 à 15:51:46
En fait, après test, t'as juste à faire un sendkey sur l'objet IE, c'est encore plus simple
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.
Marsh Posté le 12-12-2002 à 15:55:15
MagicBuzz a écrit : En fait, après test, t'as juste à faire un sendkey sur l'objet IE, c'est encore plus simple |
- 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 ?
Marsh Posté le 12-12-2002 à 15:57:43
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)
Marsh Posté le 12-12-2002 à 16:01:09
Voilà, pour créer la version "muette" du truc :
Code :
|
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 :
|
PS: Je sais plus quelle est la valeur de la constante "READYSTATE_COMPLETE"
Marsh Posté le 12-12-2002 à 16:02:26
casquetta 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 ?
Marsh Posté le 12-12-2002 à 16:03:58
MagicBuzz a écrit : Voilà, pour créer la version "muette" du truc :
|
Marsh Posté le 12-12-2002 à 16:04:58
MagicBuzz a écrit : |
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
Marsh Posté le 12-12-2002 à 16:07:06
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.
Marsh Posté le 12-12-2002 à 16:08:14
C'est quoi ta version de VB
Normalement, y'a pas de problème, DoEvents est une fonction tout à fait standard de VB...
Marsh Posté le 12-12-2002 à 16:08:22
MagicBuzz a écrit : Après tests, DoEvents ne fonctionne en effet pas quand tu fais un script VBS, ni une page ASP. |
ca ca a l'air de marcher par contre
System.Windows.Forms.Application.DoEvents()
Mais maintenant j'ai ca :
Code :
|
Comment jenvoie un sendkey la dessus et comment lui donné le focus ?
Marsh Posté le 12-12-2002 à 16:11:08
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
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
Marsh Posté le 12-12-2002 à 16:13:19
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])
Marsh Posté le 12-12-2002 à 16:14:02
MagicBuzz a écrit : Euh... OK... |
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)
Marsh Posté le 12-12-2002 à 16:16:53
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
Marsh Posté le 12-12-2002 à 16:18:26
MagicBuzz a écrit : Ben là ton code, c'est pas du VB mais du VB.NET |
Merci l'ami jvais allé voir ca
jespere que je vais trouver thx
Marsh Posté le 11-12-2002 à 22:24:41
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