Page 1 sur 1
[..] Détecter position ligne de texte dans un body html IE8
Posté : lun. 06 juin 2011 12:12
par martinbrait
Bonjour,
Quelqu'un aurait il trouvé le moyen de déterminer la position x,y d'un élément de
texte PRECIS sous IE8, afin d'activer la section de la page, contenant cet élément de texte PRECIS?
Merci beauoup pour toutes vos réponses.
(dsl, je me suis trompé de rubrique

)
Re: [..]Detecter position ligne de texte dans un body html I
Posté : lun. 06 juin 2011 12:57
par zeshrek
Il suffit de redimensionner la fenetre, et ton texte bouge. Idem si l'utilisateur utilise le zoom (bouge la molette de ta souris en gardant la touche [CTRL] appuyée par exemple).
Bref, c'est impossible.
Re: [..]Detecter position ligne de texte dans un body html I
Posté : lun. 06 juin 2011 13:43
par mikell
martinbrait a écrit :... afin d'activer la section de la page, contenant cet élément de texte PRECIS
... Mais cette activation peut peut-être se faire en passant par du code ? (voir les fonctions "IE management")
Re: [..]Detecter position ligne de texte dans un body html I
Posté : lun. 06 juin 2011 18:49
par martinbrait
Aucun moyen d'identifier des contrôles dans ma page IE8.
J'explore maintenant en tentant d'inclure ma page IE8 dans une GUI.
Cependant, avec cette méthode, je n'ai toujours pas de solution pour activer
explicitement ma page IE8.
► Afficher le texte
Code : Tout sélectionner
; *******************************************************
; Example 1 - Trap COM errors so that 'Back' and 'Forward'
; outside of history bounds does not abort script
; (expect COM errors to be sent to the console)
; *******************************************************
;
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
_IEErrorHandlerRegister ()
$oIE = _IECreateEmbedded ()
GUICreate("Embedded Web control Test", 640, 580, _
(@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
$GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
$GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
$GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
$GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
$GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)
GUISetState() ;Show GUI
_IENavigate ($oIE, "http://CheminDeMaPageInternetEncapsulée.html")
;MsgBox(32,"INFO",$oForm)
;$oSubmit = _IEFormElementGetCollection($oForm, 3) ; the 4th form element
;_IEAction($oSubmit, "click")
;=============================================================================
;Je souhaiterais que cette encapsulation permette la véritable manipulation
précise de la fenêtre.
;=============================================================================
; Waiting for user to close the window
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $GUI_Button_Home
_IENavigate ($oIE, "http://CheminDeMaPageInternetEncapsulée.html")
WinActivate($oIE);Cette instruction tourne à vide!
Send("{TAB 1}");Cette instruction tourne à vide!
Case $msg = $GUI_Button_Back
_IEAction ($oIE, "back")
Case $msg = $GUI_Button_Forward
_IEAction ($oIE, "forward")
Case $msg = $GUI_Button_Stop
_IEAction ($oIE, "stop")
EndSelect
WEnd
GUIDelete()
Exit
Re: [..] Détecter position ligne de texte dans un body html
Posté : lun. 06 juin 2011 19:41
par zeshrek
donne nous la page, et le bout de texte que tu veux situer, y aura p'tet un malin qui aura une illumination...
Re: [..] Détecter position ligne de texte dans un body html
Posté : lun. 06 juin 2011 20:13
par timmalos
Pour activer une section de page, peut etre n'avez vous pas besoin de connaitre vraiment la position X et Y. Que se passe t'il si on focus le texte? Faut il cliquer dessus?
y'a t'il un controle quelconque qui marcherait en mettant le focus dessus?
Vous pouvez par example utiliser le code suivant :
Code : Tout sélectionner
#include <IE.au3>
$oIE = _IE_Example ("form")
$oSubmit = _IEGetObjByName ($oIE, "submitExample")
$hwnd = _IEPropertyGet($oIE, "hwnd")
_IEAction ($oSubmit, "focus")
ControlSend($hwnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}")
En changeant le ControlSend par un ControlClick , etc... y'a moyen de faire beaucoup de choses, mais je peux pas en dire plus sans code.