[R] Identification avec _IE

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

[R] Identification avec _IE

#1

Message par 123456789 »

bonjour je suis nouveau :D

Voilà, je cherche à faire un script pour me connecter à ma boite mail qui est chez laposte.net, mon soucis c'est que j'ai besoin de la frame pour _IE et elle n'est pas dans le code source, donc je me demande si il n'y a pas moyen de faire autrement pour détecter la case login et la case mail.

merci d'avance :P
Modifié en dernier par 123456789 le mer. 09 janv. 2008 17:24, modifié 1 fois.
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Gestion de l'_IE

#2

Message par 123456789 »

up plz
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Gestion de l'_IE

#3

Message par Voodoo »

Je n'ai pas la doc sous les yeux mais un _IEFormGetObjByName() en utilsant le nom du champ login et du champ mot de passe a trouvé le code html de la page Laposte.net doit étre la solution !

Ps: le nom pour le login est "Identifiant" et le pour le mdp c'est "Mot de passe" mais je ne vois pas le code du formulaire dans la source...
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Gestion de l'_IE

#4

Message par 123456789 »

oui j'ai longtemps regarder les sources sans trouver je pense que ses impossible de faire une automatisation avec _IE dans laposte.net nan?
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Gestion de l'_IE

#5

Message par Voodoo »

J'essaye et je te dis !
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Gestion de l'_IE

#6

Message par Voodoo »

Effectivement, le nom du formulaire etait bien caché derriere 2 page de javascript...

Testé et aprouvé :mrgreen:

Code : Tout sélectionner

#include <IE.au3>
$oie = _IECreate("http://www.laposte.net/")
 
$obj_form = _IEFormGetCollection ($oIE, 0)
$obj_login = _IEFormElementGetCollection ($obj_form , 0)
$obj_mdp = _IEFormElementGetCollection ($obj_form , 1)
 
_IEFormElementSetValue ($obj_login ,"login")
_IEFormElementSetValue ($obj_mdp ,"mdp")
 
_IEFormSubmit ($obj_form)
 
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Gestion de l'_IE

#7

Message par 123456789 »

Ok merci mais se que je voulais savoir ses comment tu a trouver le nom du formulaire de login dans les codes sources?
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Gestion de l'_IE

#8

Message par Voodoo »

Bien sur, dans le code de la page wwww.laposte.net il y a ceci à la place du formulaire standard

Code : Tout sélectionner

 
<div class="blk_user" style="margin-left:11px;">
      <SCRIPT type="text/javascript">mail('https://compte.laposte.net');</SCRIPT>
      <div style="clear:both;"></div>
 
Du javascript, or seul le /js/css_header.js est inclu donc on regarde à http://www.laposte.net/js/css_header.js . Mais la toujours pas de formulaire ! Par contre, deux autres fichier javascript sont decalrés en include donc j'ai regardé les deux et dans celui si:
http://www.laposte.net/js/common_lp.js j ai trouvé mon code formulaire:

Code : Tout sélectionner

document.write('<form action="https://compte.laposte.net/login.do" name="userlogin" method="post" onsubmit="return checkForm()">');
Le nom du formulaire est bien userlogin :)

Normalement c'est plus simple, tu repéres un text dans la page à coté du formulaire, tu affiche la source, tu cherches ton text et pas loin tu as ton code formulaire et le nom !

Merci de mettre ton post en resolu si c'est le cas :D
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Gestion de l'_IE

#9

Message par Voodoo »

message reorienté de 123456789:

Voilas j'ai un soucil avec le scripte de login pour laposte.net si tu pourrais m'aider sa serai super :)

Citation:

Code : Tout sélectionner

While 1
 
$msg = GUIGetMsg()
 
Select
 
case $msg = $Button_exit
$msg = $GUI_EVENT_CLOSE
Exit
 
case $msg = $Button_connexion
$oie = _IECreate("http://laposte.net/")
_IELoadWait ( $oie )
Sleep(250)
$p = GUICtrlRead($login)
$m = GUICtrlRead($mdp)
If $p <> "" And $m <> "" Then
$userlogin = _IEFrameGetObjByName($oIE, "userlogin")
$FormPrincipale = _IEFormGetObjByName ($oIE, "f1")
$userINPUT = _IEFormElementGetObjByName ($FormPrincipale, "nom")
$passwordINPUT = _IEFormElementGetObjByName ($FormPrincipale, "motDePasse")
 
EndIf
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Gestion de l'_IE

#10

Message par Voodoo »

A premiére vu l'indentation est plutot farfelu ! Un bon exemple !

Code : Tout sélectionner

 
$age=3
if $age =3 then 
msgbox(0,"e",$age)
else
if $age=4 then 
msgbox(0,"e",$age)
else
if $age = -5 then 
msgboxx(0,"e","erreur")
endif
endif
endif
 
est beaucoup moin facile à lire que:

Code : Tout sélectionner

 
$age=3
if $age =3 then 
   msgbox(0,"e",$age)
   else
     if $age=4 then 
        msgbox(0,"e",$age)
     else
       if $age = -5 then 
          msgboxx(0,"e","erreur")
       endif
    endif
endif
 
Si tu edites ton code autoit3 sous Scite, tu fais ctrl+t et il te fait l'indentation automatiquement ! Sinon il faut le faire sois même. Tu gagnes en lisibilité et tu ne passes pas 1 heure à chercher le endif qui c'est fais la malle.

Ensuite je suppose que c'est un bout de code, si tu veux avoir de l'aide rapidement il nous faut tout le code qui se réfere à ton probléme afin d'avoir tous les elements en main.

Pour ce qui est du code, tu aurais pu prendre le mien qui est fonctionnel :) . Sinon tu ne dois pas utiliser le formulaire principale ! tu n'as qu'un seul formulaire à avoir c'est le "userlogin".
Enfin n'oublie pas le

Code : Tout sélectionner

_IEFormElementSetValue($objet_input_html, "valeuramettre")
_IEFormSubmit($objet_form)
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Identification avec _IE

#11

Message par 123456789 »

Nan je les disposer proprement ses en le collant que ça a fait ça ...
voilas la partie entière =>

Code : Tout sélectionner

;//////////////////////////;
;///////Boot LaPoste///////;
;//////////////////////////;
 
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <File.au3>
 
 
;/////1er Gui avec image/////;
 
$Form1 = GUICreate("Boot LaPoste", 362, 258, 584, 319, BitOR($WS_CAPTION, $WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS))
$GroupBox1 = GUICtrlCreateGroup("", -8, -8, 373, 270)
$Image1 = GUICtrlCreatePic("C:\Users\van\Desktop\van-helsing-dracula-wolf.jpg", 0, 0, 365, 260)
$Label2 = GUICtrlCreateLabel("Version : 1.0.0", 1, 240, 87, 17, $WS_GROUP)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0x000000)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlSetState(-1, $GUI_HIDE)
GUISetState(@SW_SHOW)
Sleep(3000)
GUIDelete()
 
 
$Form2 = GUICreate("Boot LaPoste", 387, 143, 585, 302)
GUISetIcon("C:\Program Files\AutoIt3\Icons\filetype3.ico")
$login = GUICtrlCreateInput("", 104, 25, 121, 21)
$Label1 = GUICtrlCreateLabel("Adresse mail :", 24, 32, 69, 17)
$Label2 = GUICtrlCreateLabel("Mot de Passe :", 24, 64, 75, 17)
$mdp = GUICtrlCreateInput("", 104, 57, 121, 21)
$Group1 = GUICtrlCreateGroup("Login", 8, 8, 369, 89)
GUICtrlSetColor(-1, 0xFF0000))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button_connexion = GUICtrlCreateButton("Connexion", 24, 112, 75, 25, 0)
$Button_profile_enregistre = GUICtrlCreateButton("Enregistrer profile", 256, 24, 107, 25, 0)
$Button_profile_charge = GUICtrlCreateButton("Charger profile", 264, 56, 91, 25, 0)
$Button_exit = GUICtrlCreateButton("Quitter", 280, 112, 75, 25, 0)
GUISetState(@SW_SHOW)
DirCreate("profil")
 
 
While 1
 
    $msg = GUIGetMsg()
 
    Select
        
        Case $msg = $Button_exit
            $msg = $GUI_EVENT_CLOSE
            Exit
            
        Case $msg = $Button_connexion
            
            $oie = _IECreate("http://www.laposte.net/")
            _IELoadWait($oie)
            $p = GUICtrlRead($login)
            $m = GUICtrlRead($mdp)
            If $p <> "" And $m <> "" Then
                $obj_userlogin = _IEFormGetCollection($oie, 0)
                $obj_user = _IEFormElementGetCollection($obj_userlogin, "Identifiant")
                $obj_password = _IEFormElementGetCollection($obj_userlogin, "Mot de passe")
 
                _IEFormElementSetValue($obj_user, $p)
                _IEFormElementSetValue($obj_password, $m)
 
                _IEFormSubmit($obj_userlogin)
            EndIf
            
 
        Case $msg = $Button_profile_charge
            FileExists("profil/login.ini")
            $p = IniRead("profil/login.ini", "Identifiants", "Adresse mail", "NotFound")
            $m = IniRead("profil/login.ini", "Identifiants", "Mot de passe", "NotFound")
            GUICtrlSetData($login, $p)
            GUICtrlSetData($mdp, $m)
            
        Case $msg = $Button_profile_enregistre
            $p = GUICtrlRead($login)
            $m = GUICtrlRead($mdp)
            $Pseudo1 = IniWrite("profil/login.ini", "Identifiants", "Adresse mail", $p)
            $Mdp1 = IniWrite("profil/login.ini", "Identifiants", "Mot de passe", $m)
 
    EndSelect
WEnd
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Identification avec _IE

#12

Message par Voodoo »

la partie :

Code : Tout sélectionner

 
                $obj_userlogin = _IEFormGetCollection($oie, 0)
                $obj_user = _IEFormElementGetCollection($obj_userlogin, "Identifiant")
                $obj_password = _IEFormElementGetCollection($obj_userlogin, "Mot de passe")
 
                _IEFormElementSetValue($obj_user, $p)
                _IEFormElementSetValue($obj_password, $m)
 
                _IEFormSubmit($obj_userlogin)
 
Ne fonctionne pas et ne correspond pas à la solution que je t'ai donné !

Pour le champ input tu peux mettre un style special:

Code : Tout sélectionner

$mdp = GUICtrlCreateInput("", 104, 57, 121, 21,$ES_PASSWORD)
La croix de la gui ne fonctionne pas pour fermer la fenetre, il faut remplacer le code correspondant par celui la:

Code : Tout sélectionner

 
      Case $msg = $Button_exit or $msg = $GUI_EVENT_CLOSE
            Exit
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Identification avec _IE

#13

Message par 123456789 »

Même si je replace par se que tu ma mis ses pareille...
peut être que le code que tu m'a donner est juste mais je n'arrive pas a coller se qui a dans le gui et le coller dans la page internet pourtant j'ai copier correctement se qui a dans le gui a l'aide de GuiCtrlRead, a mon avis ça doit venir de la partie "_IEFormElementSetValue" mais je n'en ses rien :?

Code : Tout sélectionner

        Case $msg = $Button_connexion
            
            $oie = _IECreate("http://www.laposte.net/")
            _IELoadWait($oie)
            $p = GUICtrlRead($login)
            $m = GUICtrlRead($mdp)
 
            $obj_form = _IEFormGetCollection ($oIE, 0)
            $obj_login = _IEFormElementGetCollection ($obj_form , 0)
            $obj_mdp = _IEFormElementGetCollection ($obj_form , 1)
 
            _IEFormElementSetValue ($obj_login ,$p)
            _IEFormElementSetValue ($obj_mdp ,$m)
 
            _IEFormSubmit ($obj_form)
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Identification avec _IE

#14

Message par Voodoo »

Voila le script fonctionnel et il semble que la partie que j'ai mise fonctionne :P

Tu as une erreur à quel niveau ?
Fichiers joints
laposte boot.au3
(2.69 Kio) Téléchargé 396 fois
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Identification avec _IE

#15

Message par 123456789 »

bin en faite je lance le scripte, je rentre les log donc adresse mail + mdp puis je click sur connexion sa m'ouvre deux fenêtre d'IE qui ne contien rien elle est blanche puis une deuxième s'ouvre et la ya la page laposte.net mais rien n'est entrer dans les champs...
ps:je suis sous vista
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Identification avec _IE

#16

Message par ani »

J'avais déjà conçus un script de ce genre.
On peut passer par la forme comme proposé dans le script à downloader ou directement par les noms des input ou ID de ceux-ci et un petit clique sur l'image [ok] pour se connecter, le problème étant que la page qui vérifie les champs est en https ceux qui veut dire une popup supplémentaire (en tout cas chez moi) qui demande si on veut aller sur la page sécurisé (crypté).

j'ai pas testé le script proposé juste visualisé son contenu, pour la connection j'aurai indiqué l'enregistrement du profile dès le premier lancement et je retirerait le ieloadwait (juste en dessous du iecreate)

Ton explorateur web c'est bien internet explorer ou firefox ?
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Identification avec _IE

#17

Message par 123456789 »

Sa ouvre IE mais en deux fenêtre dont une qui sert a rien, j'ai essayer sous un xp et sa fonctionne normalement sa doit venir du vista ou de la configuration de mon IE mais elle est tel quelle j'ai rien toucher je suis sur firefox tout le temps je n'utilise pas IE ...
si non j'ai un blanc ses quoi la fonction qui permet d'enregistrer une image a un emplacement sur le DD via un lien
en gros: j'ai un lien vers une img je veut l'enregistrer dans la bécane ses pas RegRead ses autre chose mais j'arrive plus a m'en souvenir et impossible de trouver dans l'aide d'AutoIt si quelqu'un saurais m'aider... :?
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Identification avec _IE

#18

Message par ani »

inetget(url, nom du fichier, reload, arrière plan)
(voir aide car j'ai un peu de mal à m'exprimer ^^ )
exemple a écrit :

Code : Tout sélectionner

inetget("http://www.google.ca/intl/fr_ca/images/logo.gif", "google.gif",1,1)
on force le téléchargement de l'image sur le dd avec un nouveau nom, le fichier se trouvera en racine du script, tu peux y indiquer un chemin (c:\mes images\google.gif)

en espérant que sa soit cette fonction ;)
123456789
Niveau 2
Niveau 2
Messages : 25
Enregistré le : ven. 04 janv. 2008 22:44
Status : Hors ligne

Re: [..] Identification avec _IE

#19

Message par 123456789 »

Arf non ses pas cette fonction la fonction don je parle sert a enregistrer une image via un lien dans un fichier, j'avais trouver sa pratique des qu'on veut envoyer un exe a quelqu'un avec un gui qui contient une image comme ça la personne peut voir l'image sur le gui vue que la fonction la télécharge pour lui et l'enregistre dans un fichier.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Identification avec _IE

#20

Message par ani »

je vois pas d'autre fonction (je suis avec une ancienne version d'autoit)

c'est un contrôle comme GUICtrlSetImage ou un télèchargement ?

Si c'est un télèchargement c'est surement une fonction qui utilise l'objet winhttp ou msmxl ou encore une autre.

je visionne sur le site anglais voir les modificiations apporté depuis la version que je dispose.

tu avais aperçu çà ou ? sur le forum anglais ou l'aide ?
Répondre