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

O Sensei Messages postés 13 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 5 février 2009 - 25 août 2004 à 12:22
LEBRIOU Messages postés 13 Date d'inscription dimanche 5 novembre 2006 Statut Membre Dernière intervention 17 mars 2013 - 12 déc. 2011 à 19:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25669-piloter-internet-explorer-ou-un-webbrowser-reponse-forum

LEBRIOU Messages postés 13 Date d'inscription dimanche 5 novembre 2006 Statut Membre Dernière intervention 17 mars 2013
12 déc. 2011 à 19:42
salut Renfield,
En effet,cette docu. est dense. je devrais y trouver ce que je cherche.
J'ai déjà pu profiter d'un de vos codes (Un explorateur de répertoires),il était aussi très bien documenté. je l'ai adopté et adapte dans un autre projet(qui est lui aussi en cours)
Encore merci pour cette réponse et pour l'aide.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 déc. 2011 à 06:56
- le DOM est très documenté sur le Net...
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-6043025

évite le iDoc.All
utiliser le getElementById getElementsByName et getElementsByTagName
LEBRIOU Messages postés 13 Date d'inscription dimanche 5 novembre 2006 Statut Membre Dernière intervention 17 mars 2013
9 déc. 2011 à 21:36
merci votre réponse rapide , mais je n'obtiens aucune aide pour cette référence même dans votre projet.
je découvre ce domaine de programmation qui correspond à un projet que je cherche à développer interagir sur une page HTML.
je cherche actuellement une aide pour ce type de commandes.l'explorateur d'objets en donne bien la liste
mais aucun détail ni sur leur fonction ni sur la syntaxe.Actuellement c'est grâce à des exemples comme les votre et quelques tâtonnements que
j'arrive péniblement à réaliser ce que je cherche à faire: par exemple changer (ou lire) la valeur d'une zone de saisie
je n'ai rien trouvé d'exploitable sur le site de microsoft (mais j'ai peut être mal chercher)

En bidouillant, j'ai pu énumérer et lire les options d'un listebox:
de la forme: <option value="IRL" title="irlande">irlande</option>

Dim iDoc As IHTMLDocument2
For I = 0 To iDoc.All.tags("option").length - 1
Texte = iDoc.All.tags("option").Item(I).innerText
Cle = iDoc.All.tags("option").Item(I).Value
.......
next

mais j'ai l'impression de redécouvrir la roue...quelques pistes d'exemples ou d'aides seraient les bien venues...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 déc. 2011 à 08:16
d'ici, me semble: (VBP)

Reference=*\G{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}#4.0#0#C:\WINDOWS\system32\MSHTML.TLB#Microsoft HTML Object Library
LEBRIOU Messages postés 13 Date d'inscription dimanche 5 novembre 2006 Statut Membre Dernière intervention 17 mars 2013
8 déc. 2011 à 22:25
Bravo! c'est ce que je recherchais: les exemples permettent de mieux comprendre.
Ou peut-on avoir une documentation sur ce type de commande?
merci
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
26 juil. 2011 à 17:15
Salut RenFIELD,

Dans ton projet, ou trouve ton les constantes :

READYSTATE_INTERACTIVE
READYSTATE_COMPLETE

des 2 ligne qui suivent:

Do Until WebBrowser1.readyState = READYSTATE_INTERACTIVE: DoEvents: Loop
Do Until WebBrowser1.readyState = READYSTATE_COMPLETE: DoEvents: Loop

ne manquerait-il pas l'enumeration des valeurs de la propriété READYSTATE ?

telle que:

Enum READYSTATE
READYSTATE_UNINITIALIZED = 0
READYSTATE_LOADING = 1
READYSTATE_LOADED = 2
READYSTATE_INTERACTIVE = 3
READYSTATE_COMPLETE = 4
End Enum

Ou bien sont'elles connues de l'objet Webrowser ? apparemment oui !

Il me semble que si l'on travail directement avec l'objet IE il faut cette énumération...

A moins que le fait de référencer IE suffit ?... mais comme je n'aime pas le référencement à IE je n'est pas essayé.

A+

PS bon ok j'ai la question et la réponse mais cela coûte rien de le signaler ;)
cs_JuJuJoJo Messages postés 1 Date d'inscription mardi 7 décembre 2010 Statut Membre Dernière intervention 7 décembre 2010
7 déc. 2010 à 11:41
Bonjour
S'il reste encore des gens à l'écoute

Je cherche, après avoir lancer la page qui m'intéresse, savoir si un ascenseur verticale est présent ou pas.
Est-ce possible ?
davonisdavid Messages postés 4 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 17 novembre 2010
17 nov. 2010 à 10:42
salut renfield !

Super ce code, ca marche, ENFINNNNNNNNNNNNNNN !

Je suis pas un Dieux en VB de loin, pas trop de temps, mais la tu m'enlève une sacrée épine du pied !

merci encore ! :=D

Si jamais j'ai d'autres soucis, je me permettrais de revenir vers toi !!!
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 nov. 2010 à 08:56
Comme je te l'ai dit, il suffit de modifier la propriété Selected du HTMLOptionElement de ton choix...

exemple :

<select id="planet" size="8">
<option>Mercure</option>
<option>Venus</option>
<option>Terre</option>
<option>Mars</option>
<option>Jupiter</option>
<option>Saturne</option>
<option>Uranus</option>
</select>

Private Sub Command1_Click()
'# Nous allons selectionner la terre...
SelectHTMLItem "planet", "Terre"
End Sub

Private Sub SelectHTMLItem(ByRef vsIDSelect As String, ByRef vsItem As String)
Dim oSelect As Object
Dim oOption As Object
Set oSelect = WebBrowser1.Document.getElementById(vsIDSelect)
If Not Nothing Is oSelect Then
'If TypeOf oSelect Is HTMLSelectElement Then '# Possible d'utiliser ce test, ou le suivant
If TypeName(oSelect) = "HTMLSelectElement" Then
For Each oOption In oSelect.getElementsByTagName("option")
If oOption.Text = vsItem Then
oOption.Selected = True
Exit For
End If
Next
End If
End If
End Sub
davonisdavid Messages postés 4 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 17 novembre 2010
16 nov. 2010 à 18:48
En fait la page que je veux piloter, je ne peux pas changer le code sources html ou php ou javascript. Aussi, j'arrive à accéder aux éléments input type=text ou password ou checkbox, mais j'arrive pas DU TOUT a interagir sur un <select> avec ses options et values des options, tu comprends ? Et en fait, j'ai fini TOUTE ma prog, sauf que n'arrivant pas à agir sur le select donc ca me bloque tout :'( snifsnif

Merci pour ces réponses si rapides ^^
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 nov. 2010 à 13:53
Pas acces a la page HTML ?
comment cela ?
davonisdavid Messages postés 4 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 17 novembre 2010
16 nov. 2010 à 13:03
je n'ai pas accès à la page HTML. Aussi je ne sais pas comment faire pour accéder à ce select avec le code utiliser ici, peux tu m'aiguiller ?

merci par avance !
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 nov. 2010 à 01:32
pour trouver les elements, recherche les <options> contenues

pour en selectionner une, je crois me souvenir qu'il m'a fallu modifier l'attribut selected de l'element <option> desire ...
davonisdavid Messages postés 4 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 17 novembre 2010
14 nov. 2010 à 12:12
Bonjour,

J'utilise ce code, néanmoins je bloque sur un point : comment l'utiliser pour gérer un select html, je ne vois pas, j'ai essayer plusieurs choses, mais seul cet éléments de ma page internet je n'arrive pas à utiliser, trouver les éléments qui sont à l'interrieur et ensuite lui donner ma valeur voulue.

Merci d'avance !
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juil. 2010 à 23:51
mouarff...
on peux pas dire que t'es objectif, l'ami ^^
cs_Fraggy Messages postés 95 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 2 juin 2010
12 juil. 2010 à 23:10
Toujours aussi dévoué ce Rey ;-)
Près de 6 ans après le dépôt de ce source, il est toujours aussi apprécié et populaire.
pour ma part, la base de cette source est toujours utilisée dans une application au boulot.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juil. 2010 à 20:21
rien.
lil est a utiliser avec vb6

je peux ajouter un exemple excel si tu le souhaites
que cherches tu as faire dans ton classeur ?
cs_rdelcourt Messages postés 3 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 14 janvier 2008
12 juil. 2010 à 19:28
Merci de me rassurer.
Et le projet1.vbp, j'en fais quoi?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juil. 2010 à 18:47
utilisable dans Excel, oui, tout a fait.

enfin... en repiquant le code via un editeur de texte
cs_rdelcourt Messages postés 3 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 14 janvier 2008
12 juil. 2010 à 18:31
Bonjour,
Ce code me paraît extraordinaire (à lire tous ces commentaires).
Est-il utilisable en VBA pour Excel 2007?
Je ne connais pas l'extension "vbp" et l'importation de "frm" dans Visual Basic d'excel me dit "La classe de feuille de ce fichier n'est pas gérée dans VBE.Le fichier ne peut pas être chargé".
Moi aussi, j'aimerais dire bravo! :-)
jjmaster Messages postés 51 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 29 septembre 2010 1
18 janv. 2010 à 16:59
Merci beaucoup
Tres interessant
fr0x3n Messages postés 1 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 3 décembre 2008
3 déc. 2008 à 23:12
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 déc. 2007 à 22:10
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...
pascalvp94 Messages postés 4 Date d'inscription dimanche 26 novembre 2000 Statut Membre Dernière intervention 24 décembre 2007
24 déc. 2007 à 16:42
Bonjour,

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

[javascript:afficheAutrePagePB(document.RecherchePagesBlanchesIndexeForm,2,'suite') Page suivante]

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

Merci de votre aide

pascal
popol70 Messages postés 1 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 8 novembre 2007
8 nov. 2007 à 17:32
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...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 août 2007 à 20:12
tu pourrais me filer ton code VB et ton code HTML ?

mail@ thomas_reynald@msn.com

parce que là, c'est étrange...
cs_thibaud28 Messages postés 9 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 14 août 2007
14 août 2007 à 18:51
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?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 août 2007 à 06:27
fallais que j'essaye, et effectivement, a fonctionne parfaitement...

WebBrowser.Document.Forms( 0 ).Submit
cs_thibaud28 Messages postés 9 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 14 août 2007
12 août 2007 à 11:12
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 août 2007 à 07:17
Assures toi que le Formulaire que tu tentes de valider soit bien le premier...
6h Messages postés 6 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 8 août 2007
8 août 2007 à 21:14
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 :)
zn415 Messages postés 62 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 21 novembre 2015
27 juil. 2007 à 01:36
J'ai l'impression que je suis trop debutant pour faire fonctionner ça.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 juil. 2007 à 01:03
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
zn415 Messages postés 62 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 21 novembre 2015
27 juil. 2007 à 00:21
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?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 23:58
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 ?)
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
26 juil. 2007 à 23:32
Mais il est pas possible ce Renfield...
Il sait tout sur tout !!! (franchement, chapeau bas...)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 21:11
j'utiliserai plutot l'API OLELoadPicture
zn415 Messages postés 62 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 21 novembre 2015
26 juil. 2007 à 19:24
savez vous comment faire pour actualiser une image venant du web sans scintillement en utilisant WebBrowser?
Utilisateur anonyme
11 juil. 2007 à 14:01
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 juil. 2007 à 13:49
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 ?
Utilisateur anonyme
11 juil. 2007 à 13:40
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)
niKolas59 Messages postés 25 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 21 janvier 2008
28 mai 2007 à 16:33
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é.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 mai 2007 à 16:25
é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...
niKolas59 Messages postés 25 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 21 janvier 2008
28 mai 2007 à 15:58
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 mars 2007 à 19:03
le plus simple ici est de faire MonFormulaire.Submit

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

++
cs_Fraggy Messages postés 95 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 2 juin 2010
12 mars 2007 à 13:08
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">



FireWall-1 message: User:

Input:
Please press 'Submit' when done: </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 ?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 janv. 2007 à 06:57
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 ^^
AngeliusMefyrx Messages postés 52 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 octobre 2007
3 janv. 2007 à 15:00
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...
cs_trackpi Messages postés 6 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 3 janvier 2007
3 janv. 2007 à 11:43
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é" ...
cs_trackpi Messages postés 6 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 3 janvier 2007
3 janv. 2007 à 11:33
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 ( ...) 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 ...
AngeliusMefyrx Messages postés 52 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 octobre 2007
19 déc. 2006 à 20: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
AngeliusMefyrx Messages postés 52 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 octobre 2007
19 déc. 2006 à 18:50
AngeliusMefyrx Messages postés 52 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 octobre 2007
19 déc. 2006 à 18:49
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
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
20 sept. 2006 à 14:10
Pour l'instant j'essaye mais sans succès...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 sept. 2006 à 12:35
au pire, tu dois pouvoir manipuler la collection Document.Frames( ...)
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
20 sept. 2006 à 12:23
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.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 sept. 2006 à 12:00
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.
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
20 sept. 2006 à 11:51
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.
laurent_vp Messages postés 2 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 28 juillet 2006
31 juil. 2006 à 16:10
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,
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008
16 juin 2006 à 09:51
Merci beaucoup ! C'est très utile
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juin 2006 à 18:34
tu as la collection Links qui est accessible...
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008
15 juin 2006 à 18:20
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 !
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2006 à 10:44
télécharge directement Expport.php en un fichier Excel, en ce cas ^^

(en utilisant, par exemple URLDownloadToFile)
Mattheous Messages postés 8 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 19 mai 2006
19 mai 2006 à 10:40
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2006 à 10:25
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)
Mattheous Messages postés 8 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 19 mai 2006
19 mai 2006 à 10:16
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é
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2006 à 09:50
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
Mattheous Messages postés 8 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 19 mai 2006
19 mai 2006 à 09:07
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 !
fufu84 Messages postés 3 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 18 avril 2006
18 avril 2006 à 12:47
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^^
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 avril 2006 à 08:11
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?
fufu84 Messages postés 3 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 18 avril 2006
17 avril 2006 à 15:30
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?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 mars 2006 à 10:47
exemple d'interception d'evenement ajouté au Zip
jejelechasseur Messages postés 4 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 26 mars 2006
24 mars 2006 à 09: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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mars 2006 à 00:41
Zip mis ajour avec eBay
felin200069 Messages postés 2 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 14 mars 2006
14 mars 2006 à 00:07
Peux tu me dire comment faire ce submit car c'est la premiere fois que je dois l'utiliser.
Merci
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 mars 2006 à 08:32
tu peux faire un submit du formulaire, je pense ^^ (.submit)
felin200069 Messages postés 2 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 14 mars 2006
12 mars 2006 à 00:53
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.
cs_Booster Messages postés 235 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 octobre 2009
13 févr. 2006 à 20:27
Bravo!!! absolument manifique se code je pensé même pas que c'été possible
Merci à toi renfield
devforce1 Messages postés 15 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 20 septembre 2006
15 nov. 2005 à 15:21
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
devforce1 Messages postés 15 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 20 septembre 2006
15 nov. 2005 à 12:35
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?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 nov. 2005 à 11:47
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"
devforce1 Messages postés 15 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 20 septembre 2006
15 nov. 2005 à 11:12
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 nov. 2005 à 12:39
c'est une fonction du Document :

Set Doc = IE.document
Doc.execCommand ......
CDAlstom Messages postés 69 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 6 mars 2006
10 nov. 2005 à 12:08
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!!!
CDAlstom Messages postés 69 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 6 mars 2006
10 nov. 2005 à 11:55
C du javascript ou quoi?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 nov. 2005 à 11:37
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")
CDAlstom Messages postés 69 Date d'inscription mercredi 21 septembre 2005 Statut Membre Dernière intervention 6 mars 2006
10 nov. 2005 à 11:06
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!
cs_polemos Messages postés 6 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 27 mai 2005
27 mai 2005 à 09:01
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
sirex007 Messages postés 1 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 20 mai 2005
20 mai 2005 à 11:41
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.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 avril 2005 à 16:41
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
cs_andrebernard Messages postés 404 Date d'inscription lundi 9 juin 2003 Statut Membre Dernière intervention 4 septembre 2013 1
22 avril 2005 à 14:34
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"></td>

Si quelqu'un pouvait m'aider
merci d'avance
cs_mchurlet Messages postés 2 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 30 mars 2005
30 mars 2005 à 17:17
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 janv. 2005 à 22:10
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
jocou Messages postés 52 Date d'inscription lundi 5 janvier 2004 Statut Membre Dernière intervention 19 novembre 2013
24 janv. 2005 à 16:41
Aurais-tu un exemple ou pourrais-tu me dire s'il est possible de trouver de la doc sur les API de SendMessage ??
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 janv. 2005 à 15:54
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...
jocou Messages postés 52 Date d'inscription lundi 5 janvier 2004 Statut Membre Dernière intervention 19 novembre 2013
24 janv. 2005 à 14:43
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
cs_polemos Messages postés 6 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 27 mai 2005
29 sept. 2004 à 15:47
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
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
31 août 2004 à 12:50
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 !!
Sirocooo Messages postés 412 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 7 avril 2008 1
26 août 2004 à 08:48
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
O Sensei Messages postés 13 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 5 février 2009
25 août 2004 à 12:30
Normale Microsoft Corp. oblige ;)

Merci qd meme ^^
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 août 2004 à 12:29
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)
O Sensei Messages postés 13 Date d'inscription vendredi 20 août 2004 Statut Membre Dernière intervention 5 février 2009
25 août 2004 à 12:22
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 ??!!
Rejoignez-nous