[R] Aller sur site internet

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
jwelcsbe
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 20 avr. 2012 21:34
Localisation : CANADA
Status : Hors ligne

[R] Aller sur site internet

#1

Message par jwelcsbe »

Bonjour à et toutes.

Ceci est mon premier message sur le forum Autoit.
En effet, je viens de découvrir ce langage que je souhaite maitriser. Il offre un grand de possibilité et je trouve cela vraiment intéressant.

Mon objectif final serait d'arriver à creer un script capable d'ouvrir une page fireFox.
Je pense savoir comment faire avec la fonction ($rc = _RunDos("start firefox.exe"))

Il devra aller sur un site internet, en l’occurrence mon serveur de messagerie et se logger.
D'après quelques petites recherches, il faut chercher dans le code source de la page les champs prêt à remplir et les remplir ?

Si il arrive à se connecter il faudrai qu'il écrive un fichier qui me le dise. Dans lequel il serait écrit par exemple '1'.
Je pense que c'est cette fonction qu'il faut utiliser ici non ? ( FileWriteLine )

je vous remercie de l'aide que vous pourrez m'apporter ainsi que les explications qui me feront m'améliorer.

bien cordialement,
Modifié en dernier par jwelcsbe le jeu. 26 avr. 2012 17:38, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Aller sur site internet

#2

Message par Tlem »

Vous gagnerez en efficacité et simplicité à utiliser les fonctions IE de AutoIt.
Puisque cette recherche est sensée se passer de manière transparente, il n'y a aucun intérêt de passer par FireFox.

Ensuite sur le but de votre script, votre description n'est pas claire. Vous devriez donner un peut plus d'information sur les actions à réaliser.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jwelcsbe
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 20 avr. 2012 21:34
Localisation : CANADA
Status : Hors ligne

Re: [..] Aller sur site internet

#3

Message par jwelcsbe »

Excusez moi, je ne connais que très peu ce langage de programmation.

Effectivement il serait plus judicieux de le faire tourner en transparent. Je ne savais pas que cela pouvais se faire.

Je vais essayer d'étoffer plus mes attentes.
Mon script doit être capable d’accéder à mon site de messagerie et de s'y connecter.
Si il y arrive il écrit dans un fichier qu'il y est arrivé, sinon il écrit dans un autre pour dire qu'il n'y est pas arrivé.

je sais pas si c'est peut-être plus clair ?

Bien cordialement,
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Aller sur site internet

#4

Message par blacksoul305 »

Bonsoir et bienvenue !

Voici un début de script venant à la base de ce post. Ce n'est qu'une base légèrement commentée pour comprendre la base d'IE, je te suggère de regarder aussi ce post. Il explique ce qu'est l'IE et répond à quelques questions que tu pourras te poser plus tard.

Code : Tout sélectionner

#include <GUIConstants.au3>
#include <IE.au3>

$ui = GUICreate("Interface utilisateur volée à hilow", 600, 500) ; on créer la GUI
$btn = GUICtrlCreateButton("enregistrer fichier", 10, 10, 200, 25) ; on créer un bouton pour enregistrer un fichier
$wb = _IECreateEmbedded() ; on appel le navigateur embarqué
GUICtrlCreateObj($wb, 10, 40, 580, 450) ; on le met en place ici
GUISetState() ; on montre la GUI

_IENavigate($wb, "http://google.com", 1) ; l'adresse de votre messagerie

While 1
    Switch GUIGetMsg() 
        Case $btn ; si on clique sur le bouton enregistrer
            $url = _IEPropertyGet($wb,"locationurl") ; on récupère l'URL
            IniWrite(@ScriptDir&"\ie.ini","IE","url",$url) ; on l'écrit
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Voilà voilà !
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
jwelcsbe
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 20 avr. 2012 21:34
Localisation : CANADA
Status : Hors ligne

Re: [..] Aller sur site internet

#5

Message par jwelcsbe »

Merci de ta réponse, c'est vrai que c'est un bon début.
Je commence à mieux comprendre comment marche autoit.

Seulement je comprend pas 2-3 choses.

Pourquoi creer un bouton pour creer un fichier ?

Quand j'arrive sur ma page WEB, il y a directement deux champs à remplir ; User/Password.

Comment lui faire dire que je veux rentrer des valeurs dans ces deux champs ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Aller sur site internet

#6

Message par mikell »

jwelcsbe a écrit :Quand j'arrive sur ma page WEB, il y a directement deux champs à remplir ; User/Password.
Hum
Si tu nous donnais l'adresse de cette page (histoire de voir son code-source) ça ferait économiser *énormément* de temps et de parlotes ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jwelcsbe
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 20 avr. 2012 21:34
Localisation : CANADA
Status : Hors ligne

Re: [..] Aller sur site internet

#7

Message par jwelcsbe »

Oui pardon.

J'ai fait quelques petites manips à base de send. ..
je ne sais pas si c'est la meilleur solution.

https://courrier.csbe.qc.ca/owa/
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Aller sur site internet

#8

Message par mikell »

Ben voilà Image
Essaye donc ça

Code : Tout sélectionner

#include <IE.au3>

$oIE = _IECreate ("https://courrier.csbe.qc.ca/owa/")
$identif = _IEFormGetObjByName ($oIE, "logonForm")
$login = _IEFormElementGetObjByName ($identif , "username")
$mdp = _IEFormElementGetObjByName ($identif , "password")
_IEFormElementSetValue ($login, "[color=#FF0000]mylogin[/color]")   ; [color=#FF0000]<= à remplir[/color]
_IEFormElementSetValue ($mdp, "[color=#FF0000]mypass[/color]")    ; [color=#FF0000]<= à remplir[/color]
_IEFormSubmit ($identif, 1)

msgbox(0,"", $oIE.locationurl)
EDIT : Si l'identification est acceptée, une nouvelle page doit s'ouvrir, avec des caractéristiques différentes (qu'on peut capter) qui permettront de savoir si c'est bon ou pas
Par exemple, dans ce script on envoie dans la MsgBox ce qui est dans la barre d'adresse de cette nouvelle page Image
Modifié en dernier par mikell le lun. 23 avr. 2012 17:40, modifié 1 fois.
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jwelcsbe
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 20 avr. 2012 21:34
Localisation : CANADA
Status : Hors ligne

Re: [..] Aller sur site internet

#9

Message par jwelcsbe »

Non sa ne marche pas, il ne remplis pas les champs en questions. . .
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Aller sur site internet

#10

Message par mikell »

Tiens, chez moi ça marche mais il me met en bas de la page
"Le nom d'utilisateur ou le mot de passe que vous avez entré n'est pas correct. Essayez de l'entrer à nouveau."
Essaye d'intercaler des Sleep(100)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Aller sur site internet

#11

Message par blacksoul305 »

Je valide le script de Mikell, testé comme tel et ça a bien marché pour moi.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
jwelcsbe
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 20 avr. 2012 21:34
Localisation : CANADA
Status : Hors ligne

Re: [..] Aller sur site internet

#12

Message par jwelcsbe »

Grâce à l'aide précieuse de mikell, nous en sommes arrivé à ce point.

Code : Tout sélectionner

#include <GUIConstants.au3>
#include <IE.au3>
Opt("WinTitleMatchMode", -2)

$wb = _IECreate ("https://courrier.csbe.qc.ca/owa/auth/logon.aspx?replaceCurrent=1&url=https%3a%2f%2fcourrier.csbe.qc.ca%2fowa%2f", 0, 0, 1, 1)
$identif = _IEFormGetObjByName ($wb, "logonForm")
$login = _IEFormElementGetObjByName ($identif , "username")
$mdp = _IEFormElementGetObjByName ($identif , "password")
$ok = "CORRECT /"
$okk = "INCORRECT /"
Local $oSubmit = _IEGetObjByName($wb, "submitExample")
_IEFormElementSetValue ($login, "wyselab01")  ; <<
_IEFormElementSetValue ($mdp, "wyselab01")   ; <<

$handle = ControlGetHandle("Outlook", "", "[CLASS:Internet Explorer_Server; INSTANCE:1]")
sleep(500)
ControlFocus("Outlook", "", $handle)
ControlSend("Outlook", "", $handle, "{tab}")
sleep(500)
ControlSend("Outlook", "", $handle, "{enter}")
sleep(500)
_IELoadWait ($wb)

$txt = "wyselab01" & "  /  " & "wyselab01" & "  /  "  & @HOUR &":"& @MIN & "  /  "

If StringInStr($wb.locationurl, "logon") Then
    $txt &= " __  NON CONNECTE  __  "
    sleep(500)
    FileWrite("PASOK.txt", $okk)
Else
    $txt &= " __  CONNECTE __  "
    sleep(500)
    FileWrite("OK.txt", $ok)
 EndIf
 sleep(500)
msgbox(0,"", $txt)
 
Il ne manquerai maintenant qu'une chose.
Je voudrais qu'il y ai une variable, de type booleen, qui soit capable si elle est mise à TRUE, d'exécuter le script en mode transparent.
Si en revanche elle est mises à FALSE, qu'elle éxécute le script en mode transparent, tel qu'il l'est actuellement.

Je vous remercie par avance.
Bien cordialement,
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Aller sur site internet

#13

Message par ani »

hein pas suivit :p

si True mode transparent
si False mode transparent

à quoi bon sortir une variable de type booleen ?

Code : Tout sélectionner

$var = true
If $var = False then
 ....action
else 
 ....action
endif
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Aller sur site internet

#14

Message par blacksoul305 »

C'est peut être pas beau à voir, mais ça répond aux attentes :
► Afficher le texte
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Aller sur site internet

#15

Message par mikell »

@blacksoul
Tu pourrais tester ça et me dire si pour toi ça marche ?
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Aller sur site internet

#16

Message par blacksoul305 »

Salut,

alors le code semble fonctionner correctement chez moi.

Le processus est transparent jusqu'à la fin où internet explorer s'affiche avec le pseudo et le mot de passe rentré, le fichier texte est aussi créé en disant qu'il n'a pu se connecter.

Mais ne voulait-il pas une fonction lui permettant si il le veut, de tourner le script soit en mode furtif, ou alors en mode voyant ?
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Aller sur site internet

#17

Message par mikell »

Si mais pour ça il suffit de jouer sur la variable $visible

Mais chez moi, quand je lance le script, comme les identifiants sont valables il se connecte et crée un fichier YES.txt
Faudrait peut-être supprimer le 'Opt("WinTitleMatchMode", -2)' et rajouter un WinActivate (le mode invisible fait perdre le focus à la fenêtre)

Code : Tout sélectionner

_IEFormElementSetValue ($login, $username) 
_IEFormElementSetValue ($mdp, $password) 
WinActivate("Outlook")  ; <<
... etc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Aller sur site internet

#18

Message par blacksoul305 »

mikell a écrit :(le mode invisible fait perdre le focus à la fenêtre)

Code : Tout sélectionner

_IEFormElementSetValue ($login, $username) 
_IEFormElementSetValue ($mdp, $password) 
WinActivate("Outlook")  ; <<
... etc
Bah c'est logique non ? Ça me viendrai pas à l'idée de donner le focus à une fenêtre invisible.

Pour la variable $visible j'ai pas vu, j'n'ai pas beaucoup de temps et me suis hâter pour te donner les résultats du script.

Enfin, étant donné que j'n'ai pas pris le temps de m'inscrire, j'ai pu tester que dans le cas où ça arrive pas à se connecter.

EDIT : Mais c'es quoi ton soucis, tout à l'air bon de ton côté non ?

EDIT2 : Comment tu as fais pour localiser les deux inputs et les remplir avec ton programme? Je n'arrive pas à comprendre, même en ouvrant le code source de la page web.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Aller sur site internet

#19

Message par mikell »

Pour les input :

Code : Tout sélectionner

<input id="username" name="username" class="txt" type="text">
<input id="password" name="password" class="txt" onfocus="g_fFcs=0" type="password">
Mon souci c'est que le script fonctionne nickel chez moi tel que je l'ai décrit, mais pas chez lui :?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Aller sur site internet

#20

Message par blacksoul305 »

mikell a écrit :Pour les input :

Code : Tout sélectionner

<input id="username" name="username" class="txt" type="text">
<input id="password" name="password" class="txt" onfocus="g_fFcs=0" type="password">
Mon souci c'est que le script fonctionne nickel chez moi tel que je l'ai décrit, mais pas chez lui :?
Ah, d'accord. Bah va falloir que je regarde encore alors ! Mais sinon, le script fonctionne nickel, je viens de recommencer.
Étudiant en 2ème année de Licence Informatique.
Répondre