[..] IE9, Handle, ControlSend, Sendkeys, minuscule/majuscule

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
martinbrait
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 06 mars 2009 17:17
Status : Hors ligne

[..] IE9, Handle, ControlSend, Sendkeys, minuscule/majuscule

#1

Message par martinbrait »

Bonjour à tous. IE9, et vogue la galère!

Impossible de manipuler ControlSend avec IE9;
Je ne vois pas du tout comment prendre la main sur la fenêtre IE
pour envoyer un lien dans la barre url!
Titres et controlid, pour taper l'url(?)
Testé plusieurs fois.
Il semble que je sache uniquement faire en deux fois avec
winactivate puis sendkeys, mais c'est lourd.

Autre problème, en utilisant sendkeys, j'ai un méli-mélo non désiré, à la saisie de majuscules et minuscules.
Toute ma saisie passe soit en majuscule, soit en minuscule, quand j'envoie une url via sendkeys.
Est ce que je suis obligé de jouer en cours de saisie, avec capslock sur 0 et 1?

Y a t il une meilleure façon d'utiliser sendkeys?

Merci d'avance!
Avatar du membre
martinbrait
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 06 mars 2009 17:17
Status : Hors ligne

Re: [..]IE9, Handle, ControlSend, Sendkeys, minuscule/majusc

#2

Message par martinbrait »

Ce code intercepte, si existante, la fenêtre IE9, et envoie une url dans un nouvel onglet
du navigateur, pour naviguer sur cette url.
Je constate de temps à autre que l'envoi de mon url www.google.fr ,
n'est pas toujours parfait via sendkeys.
Les points sont parfois saisis comme des points-virgules


Première approche qui résoud mon problème, sauf pour la saisie aléatoire majuscules/minuscules

Code : Tout sélectionner

 
$UrlAsaisir = "www.google.fr"
$PAUSE=2000

;Je teste un pid InternetExplorer
   If ProcessExists("iexplore.exe") Then
       MsgBox(0, "Example", "Internet Explorer est ouvert!.")
       ;AUQUEL CAS, J'ATTACHE LA FENETRE IE

       $var = WinList()

       For $i = 1 To $var[0][0]
           ; Only display visble windows that have a title
           If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then

               If StringInStr($var[$i][0], "Windows Internet Explorer") > 0 Then
                   ;Je vais mettre mon $Handle sur Windows Internet Explorer
                   MsgBox(0, "Details", "Title=" & $var[$i][0] & @LF & "Handle=" & $var[$i][1])
                   ;Je peux attacher mon processus, à la fenêtre windows ouverte!
                   $oIE = _IEAttach($var[$i][1], "HWND")
                   ;Msgbox(64,"contrôle",WinGetTitle($oIE))

                                                    
 ;NE PAS OUBLIER D'ACTIVER LA FENETRE LISTEE AVANT TOUTE TENTATIVE DE SAISIE
                   WinActivate($var[$i][1])

                   If $NouvelOnglet = True Then
                   Sleep($PAUSE)
                   ControlSend($oIE, "", "", "^t")
                                          ;ControlSend("Untitled", "", "Edit1", "This is a line of text in the notepad window")                                               ;Positionne immédiatement correctement pour la saisie
                                              ControlSend($oIE, "", "", $URLaSAISIR)
                       ControlSend($oIE, "", "", "{ENTER}")
                   ElseIf $NouvelOnglet = False Then
                   Sleep($PAUSE)
                           _IENavigate($oIE, $URLaSAISIR)
                   EndIf


                   ;JeTeste!

               EndIf

           EndIf
       Next
EndIf
 
Répondre