Page 1 sur 1

[R] Position du focus

Posté : dim. 31 août 2008 21:22
par dug
Bonjour,

je cherche à récupèrer la position x,y du focus dans une page web de Firefox.
je compte me servir de la position pour simuler le déplacement de la souris, pour accéder à un composant vidéo dont je n'ai pas accès dans le parcours des tabulations de la page web.

quelqu'un a une idée comment faire cela ?
j'utilise autoit depuis peu, et je n'ai pas réussi à trouver un moyen de faire cela...

merci d'avance :roll:

Re: [..] Position du focus

Posté : dim. 31 août 2008 21:45
par jbnh
Bienvenu sur le forum, merci de jeter un petit coup d'oeil ici : http://www.autoitscript.fr/forum/viewto ... ?f=3&t=595

Malgré que je ne sache pas ce que vous appellez 'focus dans une page web de Firefox', avec autoit vous avez recu un petit logiciel : Autoit windows Info , onglet souris qui vous affiche la position de la souris sur l'écran en temps réel.

Re: [..] Position du focus

Posté : dim. 31 août 2008 21:58
par dug
merci :)

j'ai lu ton lien, j'ai oublié la balise [..] désolé...

j'ai vu l'application "Autoit windows Info", mais je souhaite le faire automatiquement.
le but serait de démarrer une vidéo sur une page web. Par contre, je n'ai pas accès au composant par les tabulations, donc je pensais m'en approcher par une zone texte qui est à coté, dont je peux avoir le focus dessus.
Mais je n'arrive pas avec les divers fonctions que j'ai testé, à récupérer la position de cette zone texte. Cette position me permettrait à priori de déplacer la souris avec un décalage, pour démarrer la vidéo automatiquement...

par contre, les testes que j'ai fais n'était pas concluant :(


tiens, je viens de penser à une option d'accessibilité, qui place la souris sous le focus...

Re: [..] Position du focus

Posté : lun. 01 sept. 2008 22:06
par dug
finalement, la seul option d'accessibilité est le focus sur le bouton par défaut des boite de dialogue :(

je n'arrive toujours pas à récupèrer le focus, même d'un onglet firefox...

j'ai testé ça:

Code : Tout sélectionner

AutoItSetOption( "WinTitleMatchMode", 2 )
WinWaitActive("Mozilla Firefox")

MsgBox( 0, "", "trouve" )
Sleep( 500 )

$win = _WinAPI_GetFocus()
$text = "win: " & $win & @LF
$text &= "Full Title: " & WinGetTitle($win) & @LF
$text &= "Full Text: " & WinGetText($win) & @LF
$text &= "Handle: " & WinGetHandle($win) & @LF
$text &= "Process: " & WinGetProcess($win) & @LF
$text &= "GetWindowText : " & _WinAPI_GetWindowText($win) & @LF
MsgBox(0, "", $text)
résultat handle à null
quelqu'un à une piste please ?

Re: [..] Position du focus

Posté : lun. 01 sept. 2008 22:29
par Tlem
jbnh vous parlait de l'utilisation de "Autoit windows Info" pour récupérer les informations sur le contrôle en question pour pouvoir l'utiliser ensuite dans une automatisation.
Malheureusement FireFox ne permet pas ce genre de manipulation donc cette voie est sans issue.

Par contre vous pouvez tout simplement rechercher le contrôle dans le code source de la page et faire l'action désirée ...
La recherche d'éléments dans le code source d'une page Web à déjà été abordé à plusieurs reprise, donc avec un peut de recherche sur le forum vous trouverez sans doute votre bonheur.

Re: [..] Position du focus

Posté : mar. 02 sept. 2008 00:29
par dug
merci de ta réponse.

je vais essayé cette piste, et je vais tenter aussi avec l'utilisation de PixelGetColor pour retrouver mon controle.

Re: [..] Position du focus

Posté : mar. 02 sept. 2008 00:47
par jbnh
dug a écrit :je vais tenter aussi avec l'utilisation de PixelGetColor pour retrouver mon controle.
C'est en effet , selon moi, la meuilleur solution, hésite pas à demander si tu as un problème .

[R] Position du focus

Posté : mar. 02 sept. 2008 14:53
par dug
voilà ce que cela donne, si cela peut aider... :

Code : Tout sélectionner

;   *** recherche de la position du contrôle vidéo ***
$arr = WinGetPos("Mozilla Firefox")

$col_background = 0
$x = 5
$y = 5
$col = 1

While $col <> $col_background
    $col = PixelGetColor( $x , $y )
    $y = $y +5
WEnd

$y_entete = 350     ;   à recalculer par rapport à la résolution
$y = $y + $y_entete
$col = $col_background

While $col = $col_background
    $col = PixelGetColor( $x , $y)
    $x = $x +5
WEnd
$x = $x +10


;   *** démarrage et arrêt de la vidéo ***
MouseClick("left", $arr[0] + $x, $arr[1] + $y)
sleep(1000)
MouseClick("left", $arr[0] + $x, $arr[1] + $y)
 

Re: [..] Position du focus

Posté : mar. 02 sept. 2008 14:56
par dug
heu... on fait comment pour changer la balise en [R] du topic ? :roll:

Jbnh: Je l'ai fait pour toi, il suffit d'éditer son premier message

Re: [R] Position du focus

Posté : mar. 02 sept. 2008 17:02
par timmalos
Peut on avoir le code-source de ta page? il y a surement moyen de faire bien mieux grace à l'UDF _IE.au3.
Elle est assez compliquée à mettre en oeuvre mais on est la pour t'aider :)

Re: [R] Position du focus

Posté : mar. 02 sept. 2008 18:49
par dug
topo sur le code du script.
il ne fonctionne pas encore tout à fait, à cause à priori du temps de réponse de l'appli lors de l'envoi de touche... déjà eu ce problème, et à part mettre des Sleep dans le code, je connais pas d'autre solution :(
il est censé fonctionner sur le site http://leweb2zero.tv/ (un peu de pub ne fait pas de mal, surtout pour ce très bon site...) pour récupèrer dans un répertoire du nom de la page, sur tous les onglets ouverts, la vidéo, une sauvegarde de la page, et le lien url vers la page (ça ce n'est pas fait, et à part glisser un onglet dans l'explorateur, je n'ai pas trouvé d'autre méthode, et cela me semble compliqué...)
peut être plus tard une adaptation pour dailymotion ou autre...

il fonctionne avec le pluging de firefox "Video DownloadHelper 3.2" (en dernière position dans le menu Outils) (https://addons.mozilla.org/fr/firefox/addon/3006)

des questions, conseils ou autre, n'hésitez pas, je débute avec AutoIt, j'étais passé à coté des fonctions _IE :roll:
► Afficher le texte