Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PILOTER INTERNET EXPLORER (OU UN WEBBROWSER) [RÉPONSE FORUM]


Information sur la source

Catégorie :Tutoriaux Classé sous : piloter, webbrowser, ie, DOM, getElementById Niveau : Débutant Date de création : 25/08/2004 Date de mise à jour : 28/04/2009 15:04:32 Vu / téléchargé: 28 611 / 2 569

Note :
8,63 / 10 - par 8 personnes
8,63 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (81)
Ajouter un commentaire et/ou une note


Description

Ce code permet de montrer comment piloter IE, ou un controle WebBrowser

Pour ce faire, un examen du code de la page HTML s'impose : il faut obtenir l'id ou le nom des controles que vous souhaitez piloter.

vous pouvez, en dernier recours parcourir la collection des elements, en fonction du nom de la balise :

For Each oLink In oDoc.getElementsByTagName("a")
    ...
Next oLink


 

Conclusion

References a ajouter  (Menu Projet > References) :
Microsoft HTML Object Library
Microsoft Internet Controls
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

29 août 2004 10:08:06 :
Changement de l'interface, pour mieux montrer certains fonctionnements
21 novembre 2005 14:34:25 :
Ajout des mots-clé
14 mars 2006 00:42:09 :
exemple mis a jour (eBay)
24 mars 2006 10:28:52 :
interception d'evenements
28 avril 2009 15:04:32 :
mise a jour des exemples

Commentaires et avis

signaler à un administrateur
Commentaire de O Sensei le 25/08/2004 12:22:44

Vraiment sympa sinon (dsl d'etre casse pied) mais perso j'utilise FireFox et je présume que ca ne doit pas etre possible autrement qu'avec IE ??!!

signaler à un administrateur
Commentaire de Renfield le 25/08/2004 12:29:10 administrateur CS

Je ne sais rien de FireFox....

mais IE donne accès a pas mal d'objets qui permettent une certaine automatisation....(Comme le permettent Word ou Excel, également)

signaler à un administrateur
Commentaire de O Sensei le 25/08/2004 12:30:50

Normale Microsoft Corp. oblige ;)

Merci qd meme ^^

signaler à un administrateur
Commentaire de Sirocooo le 26/08/2004 08:48:22

Moi aussi j'utilise FireFox et je ne veux plus entendre parler de IE...

Ton code est propre, ya rien à dire... Il faudrait trouver la solution pour piloter un autre navigateur...

9/10

signaler à un administrateur
Commentaire de frop01 le 31/08/2004 12:50:57

Par hasard, tu sais pas comment piloter euuh un avion en vb?

Merci pour ce code et je pense que c'est utile pour gérer un formulaire d'enregistrement d'un prog via ie !!

signaler à un administrateur
Commentaire de polemos le 29/09/2004 15:47:13

Bonjour,

Pourrais-tu expliquer ton code. J'ai essayé de le transcrire en VBA via Excel sans succès...

C'est le passage de la saisie dans un userform vers IE qui me bloque semble-til...

Cordialement
Polemos

signaler à un administrateur
Commentaire de jocou le 24/01/2005 14:43:16

Super !
Mais est-il possible de faire la même chose avec une application Windows qui ne soit pas IE (ou un webBrowser) et qui ne supporte pas l'OLE (comme Word et Excel par exemple) ???

Merci

signaler à un administrateur
Commentaire de Renfield le 24/01/2005 15:54:14 administrateur CS

oui, via les API, et en utilisant au besoin SPy++

tu utilises FindWindow pour obtenir le handle des controles qui t'interessent, et avec des SendMessage ou autres API, tu peux piloter les actions de ton application...

signaler à un administrateur
Commentaire de jocou le 24/01/2005 16:41:53

Aurais-tu un exemple ou pourrais-tu me dire s'il est possible de trouver de la doc sur les API de SendMessage ??

signaler à un administrateur
Commentaire de Renfield le 24/01/2005 22:10:30 administrateur CS

Sendmessage.... je dirai sur MSDN, tu trouveras toutes la doc' nécessaire...

reste a assembler le tout...

le tout est que tu soit un peu familier avec l'architecture de Windows

juste a te dire que pour agir sur un controle, il faut son Handle (hWnd) , que l'on peut récuperer via FindWindow et FindWindowEx

j'ai pas d'exemple, là, sous la main, dsl

mais le net est là, et tu devrais pouvoir y trouver ton bonheur

signaler à un administrateur
Commentaire de mchurlet le 30/03/2005 17:17:01

Bonjour Renfield.
Mille mercis pour ce code. C'est exactement ce que je cherchais et que j'ai fait de façon beaucoup plus compliqué.
Je refais tout avec ton code.
Saurais-tu me donner quelques infos pour récupérer les "name" d'un bouton à l'intérieur d'une frame en vu d'un click. ?
Pas de problème pour la page de premier plan mais je me perds dans l'arborescence des frames sur certain sites compliqués et je n'arrive pas à récupérer les infos des frames et de leur contenu.
Merci (1001) et A12C4

signaler à un administrateur
Commentaire de andrebernard le 22/04/2005 14:34:39

Merci pour ce code genial
Par contre j'ai un probleme, comment fait on si le bouton est un gif et donc n'a pas de "name"

exemple

<td height="15" align="right" valign="middle"><input type="image" src="/img/bt_ok_carre.gif" width="19" height="13" border="0"></td>

Si quelqu'un pouvait m'aider
merci d'avance

signaler à un administrateur
Commentaire de Renfield le 22/04/2005 16:41:22 administrateur CS

tu peux enumerer les images de ta feuille, et tenter de reconaitre le bouton souhaité

je n'en sais pas davantage de tête, dsl

signaler à un administrateur
Commentaire de sirex007 le 20/05/2005 11:41:58

Bonjour,

Je voudrais savoir comment faire pour manipuler par le code un InternetExplorer existant.

Je m'explique, dans votre code vous déclarer : dim IE as new InternetExplorer
ensuite vous lui affecter une adresse etc etc..

Moi ce que je veux en faite, c'est affecter à cette même variable IE, l'internet explorer qui est déjà ouvert sur mon poste...

Je ne dispose pas d'aide avec l'outil que j'utilise, et je voudrais savoir si quelqu'un à déjà fait cela.

Cordialement.

signaler à un administrateur
Commentaire de polemos le 27/05/2005 09:01:45

Bonjour,
Et lorsque que IE ouvre un msbox, sais-tu comment lui "parler" : cliquer sur le bouton de ton choix, ou saisir des infos ?

Cdt
Polemos

signaler à un administrateur
Commentaire de CDAlstom le 10/11/2005 11:06:11

Bonjour, puisqu'il s'agit ici de "piloter" IE, comment faire pour enregister une page...? Avec un tru du genre "IE.save"...?!?

Merci d'avance!

signaler à un administrateur
Commentaire de Renfield le 10/11/2005 11:37:33 administrateur CS

tu trouveras dans la doc la fonction
execCommand(cmdID As String, [showUI As Boolean = Faux], [value])

tu peux faire par exemple :
execCommand("SaveAs", 1, "C:\MaPage.html")

signaler à un administrateur
Commentaire de CDAlstom le 10/11/2005 11:55:49

C du javascript ou quoi?

signaler à un administrateur
Commentaire de CDAlstom le 10/11/2005 12:08:12

Pour préciser, en fait, je voudrais en quelques sortes mettre un bouton "enregistrer" qui enregistrerait la page en html dans un répertoire prédéfini (ex: C:\)...Merci!!!

signaler à un administrateur
Commentaire de Renfield le 10/11/2005 12:39:16 administrateur CS

c'est une fonction du Document :

Set Doc = IE.document
Doc.execCommand ......

signaler à un administrateur
Commentaire de devforce1 le 15/11/2005 11:12:41

Bonjour Renfield,

ta source m'interesse grandement et je me demandais comment tu declarais ton doc? Quel type etc...
En ce qui me concerne, je dois imprimer des documents HTML. J'arrive a les ouvrir mais pour les imprimer je seche un peu.

Merci de ton aide

signaler à un administrateur
Commentaire de Renfield le 15/11/2005 11:47:17 administrateur CS

tu as dans le code :

Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)      
Dim Doc As IHTMLDocument2
Set Doc = IE.document

Pour imprimer, tu as la commande Print :
Doc.execCommand "Print"

signaler à un administrateur
Commentaire de devforce1 le 15/11/2005 12:35:25

Merci beaucoup ca marche nikel...
Sais tu si il est possible de retirer le prompt de choix d'imprimante et d'en specifier une precisement?

signaler à un administrateur
Commentaire de devforce1 le 15/11/2005 15:21:34

En fouillant j'ai trouvé cette commande qui prend l'imprimante par defaut !
      IE.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER)

Encore merci pour ta source et tes reponses.

DevForce1-Julien

signaler à un administrateur
Commentaire de Booster le 13/02/2006 20:27:29

Bravo!!! absolument manifique se code je pensé même pas que c'été possible
Merci à toi renfield

signaler à un administrateur
Commentaire de felin200069 le 12/03/2006 00:53:24

Salut

Avec ce code j'arrive a ecrire dans la page de www.ebay.fr en haut a droite dans "nouvelle recherche" du texte mais je n'arrive pas a valider avec le bouton "rechercher" car il n'as pas de nom.

Merci de m'aider.

signaler à un administrateur
Commentaire de Renfield le 12/03/2006 08:32:25 administrateur CS

tu peux faire un submit du formulaire, je pense ^^ (.submit)

signaler à un administrateur
Commentaire de felin200069 le 14/03/2006 00:07:03

Peux tu me dire comment faire ce submit car c'est la premiere fois que je dois l'utiliser.
Merci

signaler à un administrateur
Commentaire de Renfield le 14/03/2006 00:41:07 administrateur CS

Zip mis  ajour avec eBay

signaler à un administrateur
Commentaire de jejelechasseur le 24/03/2006 09:52:52

Bonjour,
Je vois que l'on peut piloter IE à partir du code vb,
mais est-il possible de faire l'inverse ?
Je m'explique :
Je voudrais capter, dans mon programme vb, le clic sur un bouton, par exemple, de ma page web.
Est ce possible et comment ? (avec source à l'appui si c'est possible)

Merci

signaler à un administrateur
Commentaire de Renfield le 24/03/2006 10:47:48 administrateur CS

exemple d'interception d'evenement ajouté au Zip

signaler à un administrateur
Commentaire de fufu84 le 17/04/2006 15:30:18

Super ce code!
J'ai cherché ca pendant pas mal de temps....

Cependant, j'ai un petit problème.
Lorsque je l'execute, il bugg là:
Btn_Search.Enabled = True
Txt_Search.Enabled = True

Par ailleurs, j'essaye de trouver les boutons, mais je n'arrive pas (lorsque je cherche dans la source).
bref, avez-vous une solution?

signaler à un administrateur
Commentaire de Renfield le 18/04/2006 08:11:53 administrateur CS

As tu bien le dernier source ?

je ne vois nulle part le code

Btn_Search.Enabled = True
Txt_Search.Enabled = True


utilises tu bien VB6?

signaler à un administrateur
Commentaire de fufu84 le 18/04/2006 12:47:06

Ah! désolé, je viens de comprendre... la source affichée sur cette page ne correspond pas à celle qu'il y a sur tes fichier?
Car j'utilise VB5... donc évidemment, y'a un pitit problème ;)

M'enfin merci pour l'indication, ca m'évitera d'y passer 3 heures^^

signaler à un administrateur
Commentaire de Mattheous le 19/05/2006 09:07:09

Bonjour,

Tout d'abord félicitations pour cet excellent code !
J'aimerai savoir si quelqu'un sait comment interagir sur les prompts d'IE, par exemple si on ouvre une url d'un lien direct de téléchargement, comment valider l'enregistrement dans la fenetre de prompt d'IE ?
Une question qui se rapproche à celle de Polemos qui etait restée, me semble-t-il sans réponse.

Merci d'avance !

signaler à un administrateur
Commentaire de Renfield le 19/05/2006 09:50:09 administrateur CS

je crois pas que l'on puisse...
au pire, on sais intercepter les clicks sur les liens...
on peux alors annuler l'apparition de la fenetre (en renvoyant False), et s'occuper nous même du téléchargement du fichier

signaler à un administrateur
Commentaire de Mattheous le 19/05/2006 10:16:53

En fait voilà ce que souhaite faire :

Je me connecte à une appli intranet, me log, lance une recherche dans la base de l'appli (je ne peux passer que par l'interface intranet car on refuse de me donner un access en lecture sur la base...) puis, j'ouvre une url qui permet d'exporter le resultat de la recherche.
Cette page d'export m'ouvre une boite de dialogue me proposant d'ouvrir le fichier (format excel) ou de l'enregistrer. Dans mon cas, je souhaite l'enregistrer...

Comment faire ?

Merci de ton aide Renfield, ton code m'a déjà bien aidé

signaler à un administrateur
Commentaire de Renfield le 19/05/2006 10:25:35 administrateur CS

cette boite de dialogue arrive toute seule ? ou suite a un click quelque part ?
si tu as le code HTML, tu dois pouvoir en extraire les infos nécessaires au téléchargement 'manuel' du fichier (sans passer par la boite de dialogue)

signaler à un administrateur
Commentaire de Mattheous le 19/05/2006 10:40:19

Alors oui, la boite s'affiche dès que l'on affiche la page.

Le site est en php, et après la recherche effectuée, le seul moyen d'extraire toutes les infos
sous un fichier excel est d'appeler la page "Export.php", qui, dès qu'on la charge, affiche la boite de dialogue afin d'ouvrir ou enregistrer le fichier.

Il n'y a pas de contenu HTML, cela provoque juste l'export par php sous un fichier de type excel.

Comment faire ?
Merci encore une fois pour ton aide

signaler à un administrateur
Commentaire de Renfield le 19/05/2006 10:44:58 administrateur CS

télécharge directement Expport.php en un fichier Excel, en ce cas ^^

(en utilisant, par exemple URLDownloadToFile)

signaler à un administrateur
Commentaire de ratala le 15/06/2006 18:20:17

Salut !
En tout cas bravo pour ta source, c'est genial mais ou as-tu appris tout sa ? j'ai cherché sur internet et j'ai rien trouvé qui expliquait les propriétés de IE.Document.
En fait je cherchait un moyen de choisir un lien au hazard sur la page et puis en suite aller sur ce lien, je suis sur que c'est possible mais je ne sais pas comment faire !
merci d'anvance !

signaler à un administrateur
Commentaire de Renfield le 15/06/2006 18:34:04 administrateur CS

tu as la collection Links qui est accessible...

signaler à un administrateur
Commentaire de ratala le 16/06/2006 09:51:56

Merci beaucoup ! C'est très utile

signaler à un administrateur
Commentaire de laurent_vp le 31/07/2006 16:10:27

Bonjour à tous !
J'utilise un contrôle WebBrowser (intégré au framework .NET 2.0) et je rencontre un problème lors de l'impression d'une page HTML. J'ai essayé ta méthode citée plus haut, Renfield, mais le résultat est toujours le même, rien ne se passe quelque soit la méthode :
   - méthode Print du WebBrowser
   - méthode ExecCommand "Print" de WebBrowser.Document
   - méthode ExecCommand "Print" de l'interface IHTMLDocument2
Quelqu'un aurait rencontré ce pb ou aurait une solution en .NET ?
Merci d'avance,

signaler à un administrateur
Commentaire de Squall____ le 20/09/2006 11:51:44

Tout d'abord, merci beaucoup pour se superbe code.
Mais j'ai un souci... Je cherche à utiliser cette technique pour me loguer sur un site mais je m'apperçois que les items que je dois utiliser ne font pas partie de la page principale mais d'une frame....

Comment interragir avec ses items ?

Merci d'avance pour ton aide.

signaler à un administrateur
Commentaire de Renfield le 20/09/2006 12:00:53 administrateur CS

manipuler les Frame n'est pas impossible, mais requiert l'implémentation d'interfaces particulières, etc...

tu peux peut-être utiliser directement l'URL de la frame en question, comme URL de départ.

signaler à un administrateur
Commentaire de Squall____ le 20/09/2006 12:23:04

Ok merci. Mais pourrais tu m'en dire plus sur la gestion des interfaces dont tu parles ? Ou bien me réorienter vers une source ou autre...

Sinon, pour ton idée d'utiliser la frame comme adresse de départ, je vais essayer.

signaler à un administrateur
Commentaire de Renfield le 20/09/2006 12:35:28 administrateur CS

au pire, tu dois pouvoir manipuler la collection Document.Frames( ...)

signaler à un administrateur
Commentaire de Squall____ le 20/09/2006 14:10:06

Pour l'instant j'essaye mais sans succès...

signaler à un administrateur
Commentaire de AngeliusMefyrx le 19/12/2006 18:49:43

Bonjour,
Voici du code que peut-être certaines personne vont trouver intéressantes suite à quelques questions que j'ai vu rapidement.... mais faudra l'adapter à votre code

Public Monliens As String
Public IE As Object

Public Const vUrl = "whatever"
Public Const vTargetFrame = "main"
Public Const vPosteData = ""
Public Const vHeaders = ""
Public Const vFlags = ""

Dim AllIE As Object
Dim VerifURL As String
Dim i As Integer

Set AllIE = CreateObject("Shell.Application")
If Monliens = "" Then
    Call MsgBox("msg d,erreur", vbCritical, "titre")
    Exit Sub
End If

For i = 0 To AllIE.windows.Count - 1
    If InStr(1, Monliens , AllIE.windows(i).locationurl, vbTextCompare) <> 0 Then
        If Not AllIE.windows(i).busy Then
            Set IE = AllIE.windows(i)
            i = AllIE.windows.Count - 1
        Else
            Reponse = MsgBox("Le liens " & Monliens & " est présentement utilisé, voullez vous attendre que celui çi soit disponible", vbYesNo, "Connection utilisé")
            If Reponse = 6 Then
                While AllIE.windows(i).busy
                    DoEvents
                Wend
                IE = AllIE.windows(i)
                i = AllIE.windows.Count - 1
            End If
        End If
    End If
Next i

If IE Is Nothing Then
    Reponse = MsgBox("Aucun liens (" & Monliens  & "),Voullez-vous ouvrir le Portail?", vbYesNo)
    If Reponse = 6 Then
        Set IE = CreateObject("InternetExplorer.Application")
        Call IE.navigate(Monliens , vFlags, vTargetFrame, vpostdata, vHeaders)
        While IE.busy
            DoEvents
        Wend
    Else
        Call MsgBox("Désolé, aucune fenêtre Internet Explorer disponible", vbOKOnly)
        Exit Sub
    End If

IE.Document.frames.NAME.frames.NAME.Document.NAME.BOITE.Value = "whatever"

J'avais une question par contre, évidement si l'object désirer n'exite pas, cela me donne une erreur, comment puis-je gérer cette erreur....
Exemple, la dernière ligne indique que je veux mettre une valeur dans une boite, sauf que si un des frames n'est pas présent, je peux vouloir lui dire de faire un navigate, dans le cas contraire ne pas faire le navigate pour rien, puisque cela prends quelques secondes inutilement....

Merci

signaler à un administrateur
Commentaire de AngeliusMefyrx le 19/12/2006 18:50:26

Voici un liens intéressant pour comprendre les objets de IE.
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp

signaler à un administrateur
Commentaire de AngeliusMefyrx le 19/12/2006 20:05:05

Finalement, pourcontourner le problème, je vais me répondre à moi même

If InStr(1, IE.Document.frames.main.Location, "Le liens dans mon frame") = 0 Then
Call MsgBox("C'est le bon liens")
End If

signaler à un administrateur
Commentaire de trackpi le 03/01/2007 11:33:18

Beau boulot ! Le balayage des instance ouverte pour voir si il y en a déja une sur l'url demandée est chouette.

J'ai toujours du mal avec les iframe ... quelle est la hierarchie de "IE.truc.machin.bidule" pour lister les links (<a ...> ...</a>) qui sont dans une iframe ?

Ceux qui sont dans la page je les trouve sur IE.document.links.item(x) mais ceux de la frame je les cherche encore ...



signaler à un administrateur
Commentaire de trackpi le 03/01/2007 11:43:36

Je précise mes inquiétudes : quand la iframe appartient à un autre domaine que la page principale, j'ai l'impression que IE refuse clairement d'en montrer le contenu ... Par exemple si on fait set obj = ie.document.frames.item(0) et qu'on essaye de regarder ce que obj a dans le ventre en mettant un espion dessus, on obtient que du "accès refusé" ...

signaler à un administrateur
Commentaire de AngeliusMefyrx le 03/01/2007 15:00:55

Salut,

Je suis pas un expert la dedans, pour mon code, j'y ai été en essaie et erreur surtout que la seule erreur que j'avais c'étais "objet invalide" et ça ma pris au moins 10 heures à percer le mystère puisque je n'avais pas le code source...
La commande links, je connais pas...

Sauf que c'est possible que tu aies raison, puisque on a le programme principale et celui de relève... celui de relève étant suposer une copie du principle, le meme code que j'ai mis pour le principale ne marche pas pour celui de relève ce qui semble absurde, sauf l'interface pointe probablement ses frames sur un autre serveur...

J'ai pas le moyen de le tester mais si j'avais à prendre un "guess" je dirais, essaie:
IE.document.frames(1).document.links.item(x)
1 = le 1er frame ...2 le 2e...etc
ou
IE.document.frames.NOMDUFRAME.document.links.item(x)

Faut simplement suivre le même paterne que sur
http://msdn.microsoft.com/library/default.asp?
T'affiche l'objet Internet Explorer et il indique les liens...

Évidement dans mon cas, ce qui m'a pris une éternité, c'est qu'il y avait un frame dans un frame et je savais pas...

signaler à un administrateur
Commentaire de Renfield le 04/01/2007 06:57:13 administrateur CS

y'a un moyen, de passer outre l'affichage frame par frame, qui est là pour sécuriser, et limiter les scripts inter domaines.

un collègue MVP VB l'avait réalisé, je sais plus sur quel site, il s'agit de haute voltige, d'instanciation d'interface, avec TLB et tout le toutim, pour en gros "montrer patte blanche".

faisable, donc, mais pas aisément ^^

signaler à un administrateur
Commentaire de Fraggy le 12/03/2007 13:08:09

Rey, j'ai moi aussi le problème que le bouton n'a pas de nom et je ne parviens pas à faire fonctionner ce code pour des pages intranet et ce que cela soit avec l'exemple de Google ou celui de Ebay. J'arrive à remplir le champ mais pas à presser le bouton :/. Voici la source :

<FORM METHOD="POST">

<INPUT TYPE="hidden" NAME="ID" VALUE="a3bbcd2e6b77"> <P>
<INPUT TYPE="hidden" NAME="STATE" VALUE="1"><P>
FireWall-1 message: User: <p> <P>

Input: <INPUT NAME="DATA"> <P>
Please press 'Submit' when done: <INPUT TYPE="submit" VALUE="Submit"><P></FORM>

On voit donc clairement que le champ est DATA, mais pour le bouton, y a rien. Il m'est donc impossible de cliquer sur le bouton. Tu n'aurais pas une solution ?

signaler à un administrateur
Commentaire de Renfield le 12/03/2007 19:03:46 administrateur CS

le plus simple ici est de faire MonFormulaire.Submit

par exemple :
...Forms(1).Submit

++

signaler à un administrateur
Commentaire de niKolas59 le 28/05/2007 15:58:57

Bonjour, je suis débutant en Visual Basic et cherchais a travaillé sur ce genre de choses, j'ai repris ton code et l'ai copié coller dans un nouveau projet, ainsi que ton bouton et ton textbox. J'ai ajouté les références qu'il fallait, mais à l'éxécution un erreur apparait :
"Erreur d'exécution '430'
La classe ne gère pas soit Automation ou l'interface attendue"

Ai-je oublié de faire quelquechose de précis ?

Merci

signaler à un administrateur
Commentaire de Renfield le 28/05/2007 16:25:42 administrateur CS

étrange, je viens de :

- faire un nouveau projet
- copier le code présenté ici, et l'ai collé dans le code de la nouvelle Form
- copier/coller le textbox et le bouton
- ajouter dans les references de mon nouveau projet:
   - Microsoft HTML Object Library
   - Microsoft Internet Controls

et ça fonctionne nikel...

signaler à un administrateur
Commentaire de niKolas59 le 28/05/2007 16:33:34

J'ai trouvé l'erreur apparemment...
Il y a deux "Microsoft Internet Controls" (c'est normal ??)
J'ai sélectionné le second et mis une priorité plus haute que l'autre et ca fonctionne !
Désolé pour le dérangement et merci pour ta disponibilité.

signaler à un administrateur
Commentaire de aKheNathOn le 11/07/2007 13:40:26

Je ne comprends pas pourquoi j'ai un vieu bug du genre :
Class does not support automation or does not support expected interface.

J'ai pourtant bien mis en référence les deux librairies (XP SP 1 / SP 2 + IE7 et IE6)

signaler à un administrateur
Commentaire de Renfield le 11/07/2007 13:49:23 administrateur CS

IE6 + IE7
j'imagine que ca doit pas faire très bon ménage ^^

ce soucis, tu l'as eu sur le code en test dans le .Zip ?

signaler à un administrateur
Commentaire de aKheNathOn le 11/07/2007 14:01:05

WAAOOOUU !

Ton zip nikel, mon copier/coller dead.

Merci - ton exemple c'est exactement ce que je recherchais !!!
Enfin une victoire de canard.

Merci pour ton aide :)

PS : Je te confirme IE 6 / IE 7 c'est pas possible, g plusieurs pc de test

signaler à un administrateur
Commentaire de zn415 le 26/07/2007 19:24:25

savez vous comment faire pour actualiser une image venant du web sans scintillement en utilisant WebBrowser?

signaler à un administrateur
Commentaire de Renfield le 26/07/2007 21:11:53 administrateur CS

j'utiliserai plutot l'API OLELoadPicture

signaler à un administrateur
Commentaire de Squall____ le 26/07/2007 23:32:28

Mais il est pas possible ce Renfield...
Il sait tout sur tout !!! (franchement, chapeau bas...)

signaler à un administrateur
Commentaire de Renfield le 26/07/2007 23:58:54 administrateur CS

euh...
Merci ^^

cette API (exemples un peu partout sur le Net) permet de charger des images en spécifiant une URL).

EBArtSoft a post une source qui permet même de patcher la fonction LoadPicture de VB pour qu'elle puisse utiliser les URL...(très fort, non ?)

signaler à un administrateur
Commentaire de zn415 le 27/07/2007 00:21:08

Je viens de faire une recherche et le fichier ce nomme oleaut32.dll

Pas moyen de l'ajouter dans mes references, ou se trouve l'astuce?

signaler à un administrateur
Commentaire de Renfield le 27/07/2007 01:03:55 administrateur CS

Dll d'API, c'est pas un ActiveX

'Code by Shige
Private Type TGUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(0 To 7) As Byte
End Type
Private Declare Function OleLoadPicturePath Lib "oleaut32.dll" (ByVal szURLorPath As Long, ByVal punkCaller As Long, ByVal dwReserved As Long, ByVal clrReserved As OLE_COLOR, ByRef riid As TGUID, ByRef ppvRet As IPicture) As Long
Public Function LoadPicture(ByVal strFileName As String) As Picture
Dim IID  As TGUID
    With IID
        .Data1 = &H7BF80980
        .Data2 = &HBF32
        .Data3 = &H101A
        .Data4(0) = &H8B
        .Data4(1) = &HBB
        .Data4(2) = &H0
        .Data4(3) = &HAA
        .Data4(4) = &H0
        .Data4(5) = &H30
        .Data4(6) = &HC
        .Data4(7) = &HAB
    End With
On Error GoTo ERR_LINE
    OleLoadPicturePath StrPtr(strFileName), 0&, 0&, 0&, IID, LoadPicture
    Exit Function
ERR_LINE:
    Set LoadPicture = VB.LoadPicture(strFileName)
End Function
Private Sub Form_Load()
    Set Me.Picture = LoadPicture("http://www.allapi.net/images/allapi_logo.gif")
End Sub

signaler à un administrateur
Commentaire de zn415 le 27/07/2007 01:36:29

J'ai l'impression que je suis trop debutant pour faire fonctionner ça.

signaler à un administrateur
Commentaire de 6h le 08/08/2007 21:14:57

J'ai le même problème que plus haut, à savoir que le bouton  n'a pas de nom.

Je tente de faire Doc.Forms(1).submit pour tenter de valider le formulaire quand même ? Ca ne marche pas. Je suis assez débutant faut dire mais si tu pouvais m'aider, ce me serait très précieux :)

signaler à un administrateur
Commentaire de Renfield le 09/08/2007 07:17:27 administrateur CS

Assures toi que le Formulaire que tu tentes de valider soit bien le premier...

signaler à un administrateur
Commentaire de thibaud28 le 12/08/2007 11:12:01

Ca fait une heure que je tourne en rond en essayant d'enviyer un formulaire qui n'a pas de nom et qui contient un bouton submit sans nom lui aussi !
J'utilise : IE.Document.Forms(1).Submit
Mais toujours la même erreur :
"Run time error (91) :
Objet Variable or With Block not set"
Quelqu'un aurait-il la solution? merci d'avance

signaler à un administrateur
Commentaire de Renfield le 13/08/2007 06:27:41 administrateur CS

fallais que j'essaye, et effectivement, a fonctionne parfaitement...

WebBrowser.Document.Forms( 0 ).Submit

  

signaler à un administrateur
Commentaire de thibaud28 le 14/08/2007 18:51:36

Merci pour la réponse mais voila la nouvelle erreur :
j'utilise "IE.document.Forms(0).submit"
et il me retourne :
RunTime error '438':
Object doesn't support this property or method.


Que dois-je faire?

signaler à un administrateur
Commentaire de Renfield le 14/08/2007 20:12:00 administrateur CS

tu pourrais me filer ton code VB et ton code HTML ?

mail@ thomas_reynald@msn.com

parce que là, c'est étrange...

signaler à un administrateur
Commentaire de popol70 le 08/11/2007 17:32:39

là, moi je dis chapeau...je cherchais ça depuis un moment
je vais tester de suite au taf et à la maison
j'aurais surement des questions...

signaler à un administrateur
Commentaire de pascalvp94 le 24/12/2007 16:42:29

Bonjour,

Comment faire pour envoyer un formulaire lorsque le form n'est pas à envoyer en submit mais via un lien du genre ?

<a href="javascript:afficheAutrePagePB(document.RecherchePagesBlanchesIndexeForm,2,'suite')" title="voir la page de résultats suivante">Page suivante</a>

J'ai essayé par la méthode invokemember, mais sans réussite.

Merci de votre aide

pascal

signaler à un administrateur
Commentaire de Renfield le 25/12/2007 22:10:31 administrateur CS

Je suppose que tu dois pouvoir récuperer une instance de ce lien (objet link de la collection links)
et de faire oLink.Click

a tester...

signaler à un administrateur
Commentaire de fr0x3n le 03/12/2008 23:12:32

Salut Renfield.
Interessant en effet mais il me manque un petit quelque chose. En effet j'ai utiliser ton exemple pour automatiser la récupération d'information sur le site d'un client.
Il y a pas mal d'infos a récupérer malheureusement le lien lance un script en java (lien du genre "javascript:action()") bon jusque la pas de problème, mon problème vient du fait que le sub WebBrowser1_DocumentCompleted n'intervient jamais tout comme le WebBrowser1.ReadyState qui n'atteint jamais WebBrowserReadyState.Complete donc boucle infini. Ma solution a été d'utiliser un GetTickCount ou un delay pour faire patienter mais cela ne me satisfait pas car lourd et perte de temps. verrais tu une solution a mon problème? ou une piste tout au moins?

Merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Modifier le pagesetup d'IE grace au Webbrowser [ par csweety13 ] CSweety13je voudrais pourvoir intervenir sur le pagesetup pour l'impression dans Internet Explorer sans avoir à ouvrir IE.je connais l'objet webbrowse WebBrowser et Internet Explorer pour les Boss comme vous [ par Zibou ] Bonjour,Je voudrai savoir comment quand un control WebBrowser demande un nouvelle fenetre ( ie s'ouvre ) recupéré l'url et fermer ie .Merci de votre a WebBrowser et Frame IE [ par cesieac ] Bonjour à tous,voilà je recherche depuis pas mal de temps comment réaliser un navigate ou un refresh sur une page WEB contenant 3 frames à travers un Automatisation d'un WebBrowser [ par mindark ] Hello !Voila, j'ai un programme qui se charge de faire mes petites taches quotidiennes du Net. je me sers d'un WebBrowser ("InternetExplorer.Applicati piloter une inst. de ie existante [ par windob ] salut,je sais piloter ie en créant une new inst. de IE mais coment je pourrair recuperer un identificateur ou quelque chose qui pourrait identifier la Comment piloter IE - lancement javascript dans la page [ par vevette ] Je désire lancer à partir de vb une page HTML.Je sais remplir les champs de la page.Par contre je ne sais pas lancer le bouton valider de la page html Piloter IE [ par alex_sex ] Bonjour, voila j'éssaie depuis des heure de faire un p'tit code qui remplirais un formulaire grace a IE, mais je en comprend pas pourquoi celui ci ne WebBrowser et popups [ par ytsejam ] Bonjour,Dans mon application j'ai un controle WebBrowser (Visual Studio 2005), et j'ai remarqu&#233; que certaines pop up de pubs passaient au travers Problèmes pour piloter Internet Explorer [ par GigiPaprika ] Bonjour,J'utilise un objet COM pour piloter Internet explorer en VB6Je voudrai mettre une valeur dans une zone de texte mais en&nbsp;sp&#233;cifiant l IE7 et TAB comment recuperer le DOM [ par abys ] Bonjour,Comment recuperer le DOM dans IE7, d'une TAB particuliere,J'ai developper un plugin IE, qui recupere le DOM d'une page web mais pas d'un TAB p


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.