[...] Possible de réaliser un script si "intelligent" ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

[...] Possible de réaliser un script si "intelligent" ?

#1

Message par Puybent »

Bonjour à tous

Afin de traiter une centaines de boites hotmail rattachées à de vieux ftp, j'aurais besoin de "créer" un script permettant de réaliser tout le travail pour moi afin de valider les boites; car certaines datant de plusieurs années ont étaient fermées, d'autres non.

Je m'étais crée un fichier Excel avec le login+pass.

Voir Cachier des charges

Est-ce que tout cela relève du rêve, ou est-ce réalisable ?
Merci à tous

EDIT : Cachier des charges :

Lancement du script
Le script ouvre le fichier excel trie-hotmail.xls
Le script ouvrir Internet explorer sur la page http://www.hotmail.com
Le script commence à lire le fichier .xls et commence à la ligne 1
Le script copie le login ligne 1 - colonne A puis le colle dans la partie login du site hotmail.com
Le script copie le mot de passe ligne 1 - colonne B puis le colle dans la partie login du site hotmail.com
Le script valide le formulaire
------------------------------
Image Le script entre dans la boite de réception. C'est un succès. Il marque donc sur la ligne 1 - Colonne C [validé]
ImageEn cas d'echec, hotmail indique "L'adresse de messagerie ou le mot de passe est incorrect. Veuillez réessayer.". Le script marque donc sur la ligne 1 - Colonne C [supprimé]
------------------------------
Le script passe à la ligne 2 et ainsi dessuite...
Modifié en dernier par Puybent le mar. 20 juil. 2010 15:37, modifié 2 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#2

Message par jbnh »

Bonjour,

Oui cela est réalisable. D'abord vous devrez lire les identifiants dans votre fichier excel, jettez un oeil vers ce topic pour vous aider :
http://autoitscript.fr/forum/viewtopic. ... ilit=excel

Vous confectionnez bien entendu une boucle pour lire a tour de role les identifiants.
Pour chaque identifiants, vous les insérez dans les champ du site de connexion hotmail.
Regardez dans le help file : _IECreate pour ouvrir une page internet et _IEFormElementSetValue pour insérer les valeurs au bon endroit.

Ensuite il faut comparer les deux pages, celle de la boite et celle de la page d'erreur. Par exemple dans la page d'erreur si il est marqué ERREUR DE CONNEXION et non dans la boite hotmail, alors vous pouvez par exemple comparer les deux sources avec _IEBodyReadHTML et voir si l'erreur apparait ou pas.

Apres vous mettez valide ou supprimé dans votre fichier excel avec le premier lien que je vous ai donné.
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#3

Message par Puybent »

Merci beaucoup.

Je pense que je vais avoir des problèmes sur la créations étant plus graphiste que codeur....

Merci
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#4

Message par Puybent »

En m'aidant de la recherche et de posts déjà existant, j'ai pu composer mon besoin.

Mais je ne trouve pas comment créer le "lien" entre Internet explorer et excel que le script copie le login de excel puis le colle dans IE et fasse de même pour le mot de passe avant de valider le formulaire.

Voilà ma formule actuel :

Code : Tout sélectionner

; *******************************************************
; Ouvrir excel
; *******************************************************

#include <trie-hotmail.au3>
$fichier = @ScriptDir & "trie-hotmail.xls"

_ExcelBookOpen($donnees)
$oExcel = ObjGet("","Excel.Application")  
$oExcel.Visible = 0

; *******************************************************
; Lecture des lignes excel
; *******************************************************

?

; *******************************************************
; Ouvrir hotmail
; *******************************************************

$oIE = _IECreate ("http://www.hotmail.com")

$o_form = _IEFormGetObjByName ($oIE, "f1")
$o_login = _IEFormElementGetObjByName ($o_form, "login")
$o_password = _IEFormElementGetObjByName ($o_form, "passwd")
$o_signin = _IEFormElementGetObjByName ($o_form, "SI")

$username = "your username here"
$password = "your password here"

_IEFormElementSetValue ($o_login, $username)
_IEFormElementSetValue ($o_password, $password)
_IEAction ($o_signin, "click")
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#5

Message par jbnh »

Et bien dans le lien que je vous ai donné, dans un de mes posts je note :
$test = $oExcel.Activesheet.Cells(1,1).Value
$test2 = $oExcel.Activesheet.Cells(1,2).Value
$test comprendra la valeur de la case excel en A1
$test "" "" B1

etc.

Avec une boucle intelligente vous pourriez parcourir toutes vos donnees. Dans quelles cases se trouvent-elles ?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#6

Message par Puybent »

Voilà comment ce présente mon excel.

Pour le moment j'ai 97 lignes à traiter mais je risque en traiter d'autres.

L'idéal serait donc que le script comment à la ligne 1 et s'arrête lorsque la dernière est traitée...

Merci pour l'aide

Image
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#7

Message par jbnh »

ceci vous permet de récupérer tous les identifiants sous forme de variables :

Code : Tout sélectionner

For $i = 1 to 97
   $user = $oExcel.Activesheet.Cells($i,1).Value
   $password = $oExcel.Activesheet.Cells($i,2).Value 
   msgbox(0,"","identifiant "&$i&": "&$user&" - "&$password)
Next
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#8

Message par Puybent »

D'accord. Je crois comprendre.

Il me reste alors à répercuter $i,1 et $i,2 dans :

$username = "your username here"
$password = "your password here"

Comme ceci dans ma partie ; Ouvrir hotmail :

$username = "$i,1"
$password = "$i,2"

EDIT : J'ai édité mon cahier des charges en premier post.
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#9

Message par Puybent »

Voilà. J'en suis pour le moment ici.
J'ai testé, rien ne marche... mais j'aurais essayé :(

Quel complexité :(

Code : Tout sélectionner

; *******************************************************
; Ouvrir excel
; *******************************************************

#include <trie-hotmail.au3>
$fichier = @ScriptDir & "trie-hotmail.xls"

_ExcelBookOpen($donnees)
$oExcel = ObjGet("","Excel.Application")
$oExcel.Visible = 0

; *******************************************************
; Lecture des lignes excel
; *******************************************************

For $i = 1 to 97
   $user = $oExcel.Activesheet.Cells($i,1).Value
   $password = $oExcel.Activesheet.Cells($i,2).Value
   msgbox(0,"","identifiant "&$i&": "&$user&" - "&$password)
Next

; *******************************************************
; Ouvrir hotmail
; *******************************************************

$oIE = _IECreate ("http://www.hotmail.com")

$o_form = _IEFormGetObjByName ($oIE, "f1")
$o_login = _IEFormElementGetObjByName ($o_form, "login")
$o_password = _IEFormElementGetObjByName ($o_form, "passwd")
$o_signin = _IEFormElementGetObjByName ($o_form, "SI")

$username = "$i,1"
$password = "$i,2"

_IEFormElementSetValue ($o_login, $username)
_IEFormElementSetValue ($o_password, $password)
_IEAction ($o_signin, "click")
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#10

Message par jbnh »

je crois que vous n'avez pas compris votre propre script et aussi les lignes de code que je vous ai passées :

$user = $oExcel.Activesheet.Cells(1,1).Value va insérer dans la variable $user ce qui se trouve la cellule excel 1,1

donc si je fais :

Code : Tout sélectionner

For $i = 1 to 97
   $user = $oExcel.Activesheet.Cells($i,1).Value
   $password = $oExcel.Activesheet.Cells($i,2).Value 
   msgbox(0,"","identifiant "&$i&": "&$user&" - "&$password)
Next
$i va varier de 1 a 97, donc lister les cellules 1,1 puis 1,2 puis 2,1 puis 2,2 etc...jusqu'a 97,1 et 97, 2

Dans votre boucle vous insérez donc tout ce qui a un rapport avec la page hotmail. Réfléchissez en francais pour faire votre boucle

début de la boucle
- je met en variable les nouveaux user et mdp (avec ce que je vous ai donné)
- j'ouvre hotmail.com
- je teste les identifiants
- j'écris le reusltats dans excell (voir ce que je vous ai donné)
fin de la boucle
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#11

Message par Puybent »

D'accord. Je fait de mon mieux :)

J'ai donc modifié en conséquences. Voilà ce que j'obtiens :

Code : Tout sélectionner

; *******************************************************
; Ouvrir excel
; *******************************************************

#include <triehotmail.au3>
$fichier = @ScriptDir & "\triehotmail.xls"

_ExcelBookOpen($donnees)
$oExcel = ObjGet("","Excel.Application")
$oExcel.Visible = 0

; *******************************************************
; Je met en variable les nouveaux user et mdp
; *******************************************************

For $i = 1 to 97
   $user = $oExcel.Activesheet.Cells($i,1).Value
   $password = $oExcel.Activesheet.Cells($i,2).Value
   msgbox(0,"","identifiant "&$i&": "&$user&" - "&$password)
Next

; *******************************************************
; J'ouvre hotmail.com
; *******************************************************

$oIE = _IECreate ("http://www.hotmail.com")

; *******************************************************
; Je teste les identifiants
; *******************************************************

$o_form = _IEFormGetObjByName ($oIE, "f1")
$o_login = _IEFormElementGetObjByName ($o_form, "login")
$o_password = _IEFormElementGetObjByName ($o_form, "passwd")
$o_signin = _IEFormElementGetObjByName ($o_form, "SI")

$username = "your username here"
$password = "your password here"

_IEFormElementSetValue ($o_login, $username)
_IEFormElementSetValue ($o_password, $password)
_IEAction ($o_signin, "click")
Malheureusement, j'obtiens cette erreur...
Image
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#12

Message par Jerome »

Votre include ligne 5 n'est pas

Code : Tout sélectionner

#include <triehotmail.au3>
mais plutôt

Code : Tout sélectionner

#include <Excel.au3>
Ce n'est pas ici le nom du fichier que vous devez renseigner.

Remodifié :)
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#13

Message par Puybent »

Hooo... je ne pensais pas qu'il fallait ce référer à un appel standard.

J'ai donc fait le changement.
J'ai donc sur mon bureau, les fichiers :

triehotmail.au3
triehotmail.xls

cependant lorsque je le lance :
Image
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#14

Message par Jerome »

Ben evidement, regarde un peu votre code ...

Code : Tout sélectionner

$fichier = @ScriptDir & "\triehotmail.xls"

_ExcelBookOpen($donnees)
elle est ou votre variable donnee ?

Mettez plutôt sa ...

Code : Tout sélectionner

$fichier = @ScriptDir & "\triehotmail.xls"

_ExcelBookOpen($fichier)

Jérôme
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#15

Message par Puybent »

Mon dieu, j'y met tout mon coeur, je m'aide des tutos, je m'aide du logiciel d'aide, je m'aide des anciens, mais rien à faire.... j'ai beaucoup de mal :(

Voilà mon codage actuel :
► Afficher le texte
Et l'erreur actuelle:
Image
nano33
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 19 sept. 2008 21:50
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#16

Message par nano33 »

bonsoir,
peut-être un problème de version, je viens de tester et tout fonctionne sans problème
:wink:
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#17

Message par Puybent »

Pourriez vous m'envoyer votre excel de test et votre script ?

Voici ma version :
Image
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#18

Message par Jerome »

Coucou,

Je test ton code pour le moment un petit peu.

Et déjà tu a oublier un autre include.

Rajoute en dessous de #include <Excel.au3>

Code : Tout sélectionner

#include <IE.au3>
 
Sinon j'ai trouver ceci sur le forum anglais :

Mais lorsqu'on veut voir les name = "" dans le code de la page, il n'y en a pas qui corresponde au lieux de saisit des ID.

Donc recherche avec le Debugger et dans le code HTML.

Essaye sa :) :

► Afficher le texte
Puybent
Niveau 1
Niveau 1
Messages : 11
Enregistré le : mar. 20 juil. 2010 10:39
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#19

Message par Puybent »

D'accord. Je vais essayer de voir le codage avec Firebug.

Sinon, j'ai toujours cette erreur mais à la ligne 12 :
Image
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [...] Possible de réaliser un script si "intelligent" ?

#20

Message par Jerome »

Si tu as utilisé le code que je t'ai fournit et que le logiciel te retourne cette erreur, c'est surement que ta version Auto It n'est pas à jours.

Fait le nécessaire :)
Répondre