Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WDxx] Simuler un click sur un bouton SUBMIT graphique dans l'activex I.Explorer

5 réponses
Avatar
Georges Peyre
Bonjour

Lors de l'utilisation l'activex d'Internet Explorer je sais remplir les
éléments en INPUT d'un formulaire et cliquer sur un bouton SUBMIT de la
façon suivante :

mhtmDoc3 est un objet OLE dynamique // IHTMLDocument3
mdocDocument est un objet OLE dynamique // HTMLDocument
mhtmInputBox est un objet OLE dynamique // HTMLInputElement

// Remplir une champ texte
mdocDocument>>item(2)>>value(Wnprenom)

// Cliquer sur un bouton SUBMIT
TagName est une chaine = "submit"
mhtmInputBox = mhtmDoc3>>getElementById(TagName)
mhtmInputBox>>Click

Dans ce cas le bouton était décrit dans le source HTML de la façon
suivante :

<tr>
<td class="normal"><input type="submit" name="submit" value="calculer"
class="submit" tabindex="8"></td>
<td colspan="4" class="normal">&nbsp;</td>
</tr>




Aujourd'hui je n'arrive pas à exécuter le click d'un formulaire dont le
bouton SUBMIT est déclaré comme une image contenant le libellé
Rechercher ( par exemple )

Le code HTML du source de la page définissant le bouton de SUBMIT est
le suivant
<tr>
<td background="Icons/bg_rech2.gif"></td>
<td align="center" background="Icons/pix_rech2.gif"><a href="#num"
onclick="return CtrlField2('num')"><img src="Icons/rechercher.gif"
onmouseover="this.src='Icons/rechercher2.gif'"
onmouseout="this.src='Icons/rechercher.gif'" border="0" height="31"
width="149"></a>
</td>
<td background="Icons/bd_rech2.gif"></td>
</tr>

QUESTION :
Quelle commande de l'activex est à utiliser pour simuler le click sur
ce bouton graphique

Merci d'avance

Cordialement

--
Elle est pas belle la vie ?

5 réponses

Avatar
Georges Peyre
Bonjour Gilles

Gilles Guédikian a écrit :
Je ne saurais pas te répondre, mais il y a un interêt particulier à faire ça
plutôt que d'envoyer toi même le formulaire avec HttpRequete et de faire
remplir des champs standards à l'utilisateur?



Je suis d'accord pour utiliser HttpRequete lorsque je connais le format
de la ligne de commande à envoyer pour lancer une recherche.

Par contre lorsque je ne connais pas le format J'utilise cette forme de
traitement de formulaire lorsque je veux simplement aider l'utilisateur
qui a déjà dans un fichier Windev tous les éléments permettant de
remplir les champs du formulaire
Dans ce cas ...
-1- je lance l'affichage de la page dans le champ activex
-2- je charge automatiquement les champs du formulaire avec les
élements de windev
-3- je simule le click sur le bouton Submit
-4- La page de résultat s'affiche

Cordialement



--
Elle est pas belle la vie ?
Avatar
Georges Peyre
Gilles Guédikian a utilisé son clavier pour écrire :

Mais puisque tu connais déjà les champs à envoyer, tu pourrais utiliser
httprequete et ne pas avoir à gérer un ActiveX?



Je veux bien mais comment faire car en fin de course je serai quand
même amené à afficher le résultat sous forme d'une page IE ?


J'en profite pour une question complémentaire :
Quel évènement de l'activex me permettrait de récupérer l'url construit
émis par le clic sur le bouton submit ou tout autre lien

Je sais récupérer par exemple l'url d'un lien survolé mais je ne sais
pas comment récupérer l'url générée par le click sur le lien

// récupération des URL lorsque la souris passe sur un LIEN
ActiveXEvénement("PLinks",ActiveX1,"StatusTextChange")

PROCEDURE PLinks(TitreBarre)
// TitreBarre contient l'URL survolée par la souris
//trace(titrebarre)
SI PAS SansEspace(TitreBarre) = "" ET PAS SansEspace(TitreBarre) =
"Terminé" ALORS
WUrlSurvolee = WUrlSurvolee + TitreBarre + RC
FIN

--
Elle est pas belle la vie ?
Avatar
Georges Peyre
Gilles Guédikian avait prétendu :

Oui mais un champ HTML suffira pour ça, pas la peine d'avoir un ActiveX.



Merci pour cette affirmation mais pourriez-vous me fournir un exemple
de l'utilisation de HttpRequete lorsqu'on ne connait pas le format de
l'URL de recherche ?

Sinon un exemple de HttpRequête avec l'utilisation de la recherche
inversee me conviendrait à l'adresse http://www.118712.fr
Un seul champ et un click

Un bout de code serait sympa

Merci d'avance



--
Elle est pas belle la vie ?
Avatar
Georges Peyre
Bonjour Gilles

Merci infiniment pour ce super exemple
Vous allez en aider plus d'un !

Qu'est-ce que je me suis emmerdé pour rien !!

Dernière question

Avec l'activex IE on peut récupérer le texte seul avec le code suivant

WRecupere = ActiveX1>>Document>>body>>outerTEXT // ou innerTEXT

Comment le faire à partir de CHAMP_HTML ?

Cordialement

--
Elle est pas belle la vie ?
Avatar
Georges Peyre
Bonsoir Gilles

Gilles Guédikian avait soumis l'idée :

Hum, là par contre, je ne sais pas.
Le champs HTML est basé sur le moteur de IE.
Donc il doit avoir les mêmes propriétés mais je ne sais pas si on peut les
appeler.



J'ai cherché sur plusieurs sites et forum et finalement j'ai trouvé sur
Winasso du code qui permet d'extraire le code texte d'une page HTML

Reste un problème inhérant à windows XP SP2, ç'est l'impossibilité
d'enlever les message script lorsqu'on affiche une page dans un champ
HTML

Finalement la solution qui solutionne les 2 problèmes est de
-Exécuter la HttpRequete
-Récupérer le résultat
-Le sauver dans un fichier xxxx.HTML
-Recharger ce fichier HTML dans une champ Activex IE ( caché ou
visible)

... de ce fait : Plus de message script et possibilité de récupérer le
texte de la page avec ActiveX1>>Document>>body>>outerTEXT // ou
innerTEXT

Merci infiniment pour ton aide

Cordialement



--
Elle est pas belle la vie ?