Demande aide sur utilisation Envoietouche avec Activex IE
4 réponses
GpEp
Bonjour
Je charge un site dans un champ Activex de Internet Explorer avec le
code suivant :
-1- je sélectionne un champ radio ( équivalent champ interrupteur )
dont NAME=typequelconque dans le code HTML du source de la page
chargée
-2- je charge
- l'identifiant du site dans un champ HTML libellé dont NAME=login
dans le code HTML du source de la page chargée
- le mot de passe dans un champ HTML libellé dont NAME=password dans
le code HTML du source de la page chargée
-3- je clique sur le bouton de la connexion ( SUBMIT dans le code HTML
du source de la page chargée )
--------- début du code ---------
mhtmDoc3 est un objet OLE dynamique // HTMLDocument3
mdocDocument est un objet OLE dynamique // HTMLDocument
mhtmInputBox est un objet OLE dynamique // HTMLInputElement
mhtmDoc3 = ActiveX1>>Document
TagName est une chaîne
// Bouton radio
TagName = "typequelconque"
mhtmInputBox = mhtmDoc3>>getElementById(TagName)
mhtmInputBox>>Click
// champ libelle du mot de passe
TagName = "password"
mhtmInputBox = mhtmDoc3>>getElementById(TagName)
mhtmInputBox>>value("xxxxxxx")
Temporisation(50)
// bouton submit de la connexion
TagName = "authentificationSubmit"
mhtmInputBox = mhtmDoc3>>getElementById(TagName)
mhtmInputBox>>Click
libérer(mhtmDoc3)
libérer(mdocDocument)
libérer(mhtmInputBox)
--------- fin du code --------
Ce code marche parfaitement excepté que les champs login et password
qui sont bien chargés ne sont pas pris en compte par le site web (
comme s'ils n'avaient pas été écrits ) alors que je les vois bien dans
les champs, que le bouton radio est bien sélectionné et que le submit
est bien exécuté.
Ma question est donc la suivante :
Au lieu d'utiliser ce code je voudrais utiliser EnvoieTouche qui
simulera peut-être une véritable frappe dans les champs HTML de
l'activex.
Pouvez-vous m'indiquer comment utiliser EnvoieTouche pour sélectionner
le bouton radio et charger les champs login et password ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Romain PETIT
GpEp a écrit :
Bonjour,
Ma question est donc la suivante : Au lieu d'utiliser ce code je voudrais utiliser EnvoieTouche qui simulera peut-être une véritable frappe dans les champs HTML de l'activex. Pouvez-vous m'indiquer comment utiliser EnvoieTouche pour sélectionner le bouton radio et charger les champs login et password ?
EnvoieTouche fonctionne comme si l'utilisateur appuyait sur la touche.
Tout le problème est de donner à tes champs le focus au bon moment (entrée dans le champ et envoitouche), ce qui n'est pas forcément facile avec un champ qui n'est pas directement contrôlé.
Vois quand même ce que donne DonneFocus (ou sysfocus) pour donner le focus à la page gérée par l'activeX, et ensuite essaye de naviguer dans les différents champs avec envoietouche({TAB}) pour tabuler.
Ma question est donc la suivante :
Au lieu d'utiliser ce code je voudrais utiliser EnvoieTouche qui simulera
peut-être une véritable frappe dans les champs HTML de l'activex.
Pouvez-vous m'indiquer comment utiliser EnvoieTouche pour sélectionner le
bouton radio et charger les champs login et password ?
EnvoieTouche fonctionne comme si l'utilisateur appuyait sur la touche.
Tout le problème est de donner à tes champs le focus au bon moment
(entrée dans le champ et envoitouche), ce qui n'est pas forcément
facile avec un champ qui n'est pas directement contrôlé.
Vois quand même ce que donne DonneFocus (ou sysfocus) pour donner le
focus à la page gérée par l'activeX, et ensuite essaye de naviguer dans
les différents champs avec envoietouche({TAB}) pour tabuler.
A+
--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Ma question est donc la suivante : Au lieu d'utiliser ce code je voudrais utiliser EnvoieTouche qui simulera peut-être une véritable frappe dans les champs HTML de l'activex. Pouvez-vous m'indiquer comment utiliser EnvoieTouche pour sélectionner le bouton radio et charger les champs login et password ?
EnvoieTouche fonctionne comme si l'utilisateur appuyait sur la touche.
Tout le problème est de donner à tes champs le focus au bon moment (entrée dans le champ et envoitouche), ce qui n'est pas forcément facile avec un champ qui n'est pas directement contrôlé.
Vois quand même ce que donne DonneFocus (ou sysfocus) pour donner le focus à la page gérée par l'activeX, et ensuite essaye de naviguer dans les différents champs avec envoietouche({TAB}) pour tabuler.
Apres plusieurs tests je me suis rendu compte que ce ne sont pas les saisies de l'identifiant et du mot de passe qui sont en cause mais c'est le code ... mhtmInputBox = mhtmDoc3>>getElementById(TagName) mhtmInputBox>>click ... qui n'est pas identique au vrai click fait avec la souris sur le bouton submit
Grâce à tes conseils j'ai trouvé une solution qui fonctionne mais qui n'est vraiment pas élégante.
-1- Pour récupérer la position du curseur dans la page de l'activex j'ai mis ce code dans la zone survol de la souris du champ activex Res est un entier = CurseurPos(cpClient) Message(Res)
// simulation du clic sur le bouton de l'Activex CurseurPos(cpClient,nPosX,nPosY) EnvoieTouche("{BTNGAUCHE,"+NumériqueVersChaîne(nPosX,"d")+","+NumériqueVersChaîne(nPosY,"d")+"}",Handle(ActiveX1))
Celà marche alors parfaitement comme si j'avais cliqué sur le bouton :
------
Aurais-tu une idée sur la raison qui fait que "mhtmInputBox>>click" ne réagit pas correctement ? Y aurait-il une solution plus élégante ?
Merci encore pour ton aide
Cordialement
Romain PETIT avait prétendu :
GpEp a écrit :
Bonjour,
Ma question est donc la suivante : Au lieu d'utiliser ce code je voudrais utiliser EnvoieTouche qui simulera peut-être une véritable frappe dans les champs HTML de l'activex. Pouvez-vous m'indiquer comment utiliser EnvoieTouche pour sélectionner le bouton radio et charger les champs login et password ?
EnvoieTouche fonctionne comme si l'utilisateur appuyait sur la touche.
Tout le problème est de donner à tes champs le focus au bon moment (entrée dans le champ et envoitouche), ce qui n'est pas forcément facile avec un champ qui n'est pas directement contrôlé.
Vois quand même ce que donne DonneFocus (ou sysfocus) pour donner le focus à la page gérée par l'activeX, et ensuite essaye de naviguer dans les différents champs avec envoietouche({TAB}) pour tabuler.
A+
Bonjour Romain,
Apres plusieurs tests je me suis rendu compte que ce ne sont pas les
saisies de l'identifiant et du mot de passe qui sont en cause mais
c'est le code ...
mhtmInputBox = mhtmDoc3>>getElementById(TagName)
mhtmInputBox>>click
... qui n'est pas identique au vrai click fait avec la souris sur le
bouton submit
Grâce à tes conseils j'ai trouvé une solution qui fonctionne mais qui
n'est vraiment pas élégante.
-1- Pour récupérer la position du curseur dans la page de l'activex
j'ai mis ce code dans la zone survol de la souris du champ activex
Res est un entier = CurseurPos(cpClient)
Message(Res)
// simulation du clic sur le bouton de l'Activex
CurseurPos(cpClient,nPosX,nPosY)
EnvoieTouche("{BTNGAUCHE,"+NumériqueVersChaîne(nPosX,"d")+","+NumériqueVersChaîne(nPosY,"d")+"}",Handle(ActiveX1))
Celà marche alors parfaitement comme si j'avais cliqué sur le bouton :
------
Aurais-tu une idée sur la raison qui fait que "mhtmInputBox>>click" ne
réagit pas correctement ?
Y aurait-il une solution plus élégante ?
Merci encore pour ton aide
Cordialement
Romain PETIT avait prétendu :
GpEp a écrit :
Bonjour,
Ma question est donc la suivante :
Au lieu d'utiliser ce code je voudrais utiliser EnvoieTouche qui simulera
peut-être une véritable frappe dans les champs HTML de l'activex.
Pouvez-vous m'indiquer comment utiliser EnvoieTouche pour sélectionner le
bouton radio et charger les champs login et password ?
EnvoieTouche fonctionne comme si l'utilisateur appuyait sur la touche.
Tout le problème est de donner à tes champs le focus au bon moment (entrée
dans le champ et envoitouche), ce qui n'est pas forcément facile avec un
champ qui n'est pas directement contrôlé.
Vois quand même ce que donne DonneFocus (ou sysfocus) pour donner le focus à
la page gérée par l'activeX, et ensuite essaye de naviguer dans les
différents champs avec envoietouche({TAB}) pour tabuler.
Apres plusieurs tests je me suis rendu compte que ce ne sont pas les saisies de l'identifiant et du mot de passe qui sont en cause mais c'est le code ... mhtmInputBox = mhtmDoc3>>getElementById(TagName) mhtmInputBox>>click ... qui n'est pas identique au vrai click fait avec la souris sur le bouton submit
Grâce à tes conseils j'ai trouvé une solution qui fonctionne mais qui n'est vraiment pas élégante.
-1- Pour récupérer la position du curseur dans la page de l'activex j'ai mis ce code dans la zone survol de la souris du champ activex Res est un entier = CurseurPos(cpClient) Message(Res)
// simulation du clic sur le bouton de l'Activex CurseurPos(cpClient,nPosX,nPosY) EnvoieTouche("{BTNGAUCHE,"+NumériqueVersChaîne(nPosX,"d")+","+NumériqueVersChaîne(nPosY,"d")+"}",Handle(ActiveX1))
Celà marche alors parfaitement comme si j'avais cliqué sur le bouton :
------
Aurais-tu une idée sur la raison qui fait que "mhtmInputBox>>click" ne réagit pas correctement ? Y aurait-il une solution plus élégante ?
Merci encore pour ton aide
Cordialement
Romain PETIT avait prétendu :
GpEp a écrit :
Bonjour,
Ma question est donc la suivante : Au lieu d'utiliser ce code je voudrais utiliser EnvoieTouche qui simulera peut-être une véritable frappe dans les champs HTML de l'activex. Pouvez-vous m'indiquer comment utiliser EnvoieTouche pour sélectionner le bouton radio et charger les champs login et password ?
EnvoieTouche fonctionne comme si l'utilisateur appuyait sur la touche.
Tout le problème est de donner à tes champs le focus au bon moment (entrée dans le champ et envoitouche), ce qui n'est pas forcément facile avec un champ qui n'est pas directement contrôlé.
Vois quand même ce que donne DonneFocus (ou sysfocus) pour donner le focus à la page gérée par l'activeX, et ensuite essaye de naviguer dans les différents champs avec envoietouche({TAB}) pour tabuler.
A+
Romain PETIT
Il se trouve que GpEp a formulé :
Aurais-tu une idée sur la raison qui fait que "mhtmInputBox>>click" ne réagit pas correctement ?
Tu es sûr du nom "authentificationSubmit" ? (pas de A majucule ?)
Aurais-tu une idée sur la raison qui fait que "mhtmInputBox>>click" ne réagit
pas correctement ?
Tu es sûr du nom "authentificationSubmit" ? (pas de A majucule ?)
Y aurait-il une solution plus élégante ?
Acune idée...
Merci encore pour ton aide
A+
--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup