OVH Cloud OVH Cloud

WDx Presque trouvé

6 réponses
Avatar
Georges Peyre
Bonjour

J'ai enfin trouvé comment ouvrir la fenêtre "Rechercher un mot dans la
page" lorsqu'on utilise le webbrowser IE
C'est tellement simple que s'en est risible :
Il faut ...
-1- cliquer sur le champ de l'activex
-2- appuyer sur les touches de fonction CTRL + F
... et la fenêtre Rechercher s'ouvre et s'utilise comme avec Internet
Explorer

Si on ne clique pas d'abord sur le champ activex la fenêtre ne s'ouvre
pas.

Donc dans un bouton je veux simuler ces 2 opérations de la façon
suivante :
// je veux simuler le clic sur le champ activex qui s'appelle
HTML_EXPLORER
SendMessage (Handle(HTML_EXPLORER), 513, 400, 400)
SendMessage (Handle(HTML_EXPLORER), 514, 400, 400)
// je simule l'appui sur les touche CTRL+F
EnvoieTouche("^f",Handle(HTML_EXPLORER))

Malheureusement la simulation du clic ne fonctionne pas : je suis
obligé de cliquer sur l'activex pour que la fenêtre Rechercher s'ouvre

Que manque-t-il pour que la simulation du clic fonctionne réellement ?

Cordialement

--
Elle est pas belle la vie ?

6 réponses

Avatar
nicolas
J'ai rencontre le meme pb mais sur un champ html, il te suffit de
simuler le clic sur ton champ ou composant et le tour est joue!

*************
//Permet de simuler un clic gauche dans le champ html pour l'obliger a
prendre le focus!!!

//position du curseur
nPos,nPosX,nPosY sont des entiers
nPos = CurseurPos(cpClient)
nPosX = PoidsFaible(nPos)
nPosY = PoidsFort(nPos)
EnvoieTouche("{BTNGAUCHE,"+NumériqueVersChaine(nPosX,"d")+","+Numérique VersChaine(nPosY,"d")+"}",Handle(HTML1))
CurseurPos(cpClient,nPosX,nPosY)

// je lance l'ouverture de la fenetre IE de recherche
EnvoieTouche("^{f}",Handle(HTML1))
RepriseSaisie(HTML1)

********************
Voila,
En esperant que cela puisse t'aider

( je me rapelle d'ailleurs t'avoir mailé concernant ce pb mais sans
reponse de ta part j'en avais conclu une résolution du pb)
Avatar
Georges Peyre
Ne cherchez plus !!

La solution est la suivante ( Trouvée sur le site de R.Besset )
// simule le clic sur le champ activex
EnvoieTouche("{BTNGAUCHE,104 ,183}",Handle(HTML_EXPLORER))
//simule le CTRL+F
EnvoieTouche("^f",Handle(HTML_EXPLORER))

Cordialement

--
Elle est pas belle la vie ?
Avatar
STASZEWSKI André
Pôv Nicolas...
Même pas eu un ptit merci pour s'être cassé la tête sur ton pb...
--
Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu 3.1 sur www.PlaneteDev.fr.st
Pour me contacter cliquez ici : http://cerbermail.com/?OT0Wnwyzph
Avatar
Georges Peyre
Bonjour André,

Il se trouve que STASZEWSKI André a formulé :
Pôv Nicolas...
Même pas eu un ptit merci pour s'être cassé la tête sur ton pb...



Tu as raison André je viens juste de lire la réponse de Nicolas que je
n'ai pas remarquée au moment ou j'ai tapé mon message.

Un grand Merci à Nicolas

Cordialement

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

Je veux préciser que ton exemple est parfait et plus complet que le
mien car il gère le positionnement du curseur après le clic :
-1- Avec ma solution trop incomplète le curseur reste positionné
quelque part entre le bouton qui vient d'être cliqué et la fenêtre
ouverte.
-2- Avec ta solution, après l'ouverture de la fenêtre le curseur reste
positionné sur le bouton cliqué : ce qui est parfait

Merci encore pour ton aide

Cordialement


nicolas avait écrit le 15/06/2005 :
*************
//Permet de simuler un clic gauche dans le champ html pour l'obliger a
prendre le focus!!!

//position du curseur
nPos,nPosX,nPosY sont des entiers
nPos = CurseurPos(cpClient)
nPosX = PoidsFaible(nPos)
nPosY = PoidsFort(nPos)
EnvoieTouche("{BTNGAUCHE,"+NumériqueVersChaine(nPosX,"d")+","+NumériqueVersChaine(nPosY,"d")+"}",Handle(HTML1))
CurseurPos(cpClient,nPosX,nPosY)

// je lance l'ouverture de la fenetre IE de recherche
EnvoieTouche("^{f}",Handle(HTML1))
RepriseSaisie(HTML1)

********************



--
Elle est pas belle la vie ?
Avatar
nicolas
C'est un probleme que je venais de resoudre donc je me suis contenté
de te donner la methode que j'avais utilisé!
Ravi d'avoir pu t'aider en tout cas.

A charge de revanche ;)