Un champ Activex d'Internet Explorer contient un bouton "Rechercher" à
cliquer par l'utilisateur.
A partir d'un bouton "Lancer la recherche" du menu de la fenêtre je
désire simuler un clic sur ce bouton "Rechercher"
Pour réaliser ceci j'ai saisi le code suivant dans la procédure Clic du
bouton "Lancer la recherche"
// -- Clic sur Lancer la recherche --
nPos,nPosX,nPosY sont des entiers
nPos = 24969320 // C'est la position du bouton "Rechercher" dans
le champ Activex
nPosX = PoidsFaible(nPos)
nPosY = PoidsFort(nPos)
A l'exécution, si clique 1 SEULE FOIS sur le bouton du menu "Lancer la
recherche" le curseur de la souris se positionne bien sur le bouton
"Rechercher" de l'Activex mais le mouvement ENTREE de EnvoieTouche ne
provoque pas cette action sur ce bouton.
Par contre si je clique DEUX FOIS DE SUITE sur le bouton "Lancer la
recherche" l'action ENTREE sur le bouton "Rechercher" fonctionne bien.
- 2ème essai -
J'ai donc essayé de faire exécuter ce code 2 fois en le séparant (ou
non) par une temporisation d'une seconde : çà ne marche pas !
Même phénomène : il faut toujours cliquer 2 fois de suite pour que çà
fonctionne
Avez-vous une idée sur la raison du problème et ce que que je dois
corriger pour que çà fonctionne avec un seul clic sur
le bouton "Lancer la recherche"
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
Georges Peyre
Bonjour
NOTA : Ne tenez pas compte du message original : j'ai fait une grosse erreur d'interprétation du phénomène décrit
Par contre voilà la solution qui décrit comment concevoir une procédure pour cliquer sur un bouton d'une page web affichée dans l'Activex de Internet Explorer
// Il faut repérer la position du bouton dans la page // Pour s'aider avec précision utiliser l'évènement Survol de la souris // survol de la souris Evénement("PositionSouris","*.*",512) PROCEDURE PositionSouris() Res est un entier = CurseurPos(cpClient) Message(Res)
// Lancer la fenêtre du navigateur pour afficher la page web concernée // -1- Positionner le curseur de la souris au centre du bouton à cliquer // -2- Noter le chiffre affiché dans la barre de message de la fenêtre ( exemple : 249693317 ) // -3- Positionner le curseur de la souris sur l'angle interne Haut/Gauche du champ Activex // -4- Noter ce chiffre affiché dans la barre de message de la fenêtre ( exemple : 2228234 ) // -5- Soustraire le chiffre -4- au chiffre -2- ( 249693317 - 2228234 = 22741083 ) // -6- Affecter le chiffre obtenu comme position du curseur dans la procédure suivante
// 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))
Cordialement
-- Elle est pas belle la vie ?
Bonjour
NOTA : Ne tenez pas compte du message original : j'ai fait une grosse
erreur d'interprétation du phénomène décrit
Par contre voilà la solution qui décrit comment concevoir une procédure
pour cliquer sur un bouton d'une page web affichée dans l'Activex de
Internet Explorer
// Il faut repérer la position du bouton dans la page
// Pour s'aider avec précision utiliser l'évènement Survol de la souris
// survol de la souris
Evénement("PositionSouris","*.*",512)
PROCEDURE PositionSouris()
Res est un entier = CurseurPos(cpClient)
Message(Res)
// Lancer la fenêtre du navigateur pour afficher la page web concernée
// -1- Positionner le curseur de la souris au centre du bouton à
cliquer
// -2- Noter le chiffre affiché dans la barre de message de la fenêtre
( exemple : 249693317 )
// -3- Positionner le curseur de la souris sur l'angle interne
Haut/Gauche du champ Activex
// -4- Noter ce chiffre affiché dans la barre de message de la fenêtre
( exemple : 2228234 )
// -5- Soustraire le chiffre -4- au chiffre -2- ( 249693317 - 2228234 =
22741083 )
// -6- Affecter le chiffre obtenu comme position du curseur dans la
procédure suivante
// 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))
NOTA : Ne tenez pas compte du message original : j'ai fait une grosse erreur d'interprétation du phénomène décrit
Par contre voilà la solution qui décrit comment concevoir une procédure pour cliquer sur un bouton d'une page web affichée dans l'Activex de Internet Explorer
// Il faut repérer la position du bouton dans la page // Pour s'aider avec précision utiliser l'évènement Survol de la souris // survol de la souris Evénement("PositionSouris","*.*",512) PROCEDURE PositionSouris() Res est un entier = CurseurPos(cpClient) Message(Res)
// Lancer la fenêtre du navigateur pour afficher la page web concernée // -1- Positionner le curseur de la souris au centre du bouton à cliquer // -2- Noter le chiffre affiché dans la barre de message de la fenêtre ( exemple : 249693317 ) // -3- Positionner le curseur de la souris sur l'angle interne Haut/Gauche du champ Activex // -4- Noter ce chiffre affiché dans la barre de message de la fenêtre ( exemple : 2228234 ) // -5- Soustraire le chiffre -4- au chiffre -2- ( 249693317 - 2228234 = 22741083 ) // -6- Affecter le chiffre obtenu comme position du curseur dans la procédure suivante
// 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))