Page 1 sur 2
[R] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 30 nov. 2008 13:44
par Mastersey
Bonjour,
Mon premier script ne paie pas de mine... Depuis que j'ai découvert AutoIt (ce matin 02h00), j'essaie de faire quelque chose de tout bête: Redémarrer automatiquement ma neufbox v4.
Code : Tout sélectionner
Run("C:\Progra~1\Mozilla Firefox\firefox.exe", "", @SW_MAXIMIZE)
WinWaitActive("Google - Mozilla Firefox")
sleep(500)
MouseClick("left", 1600, 70, 1)
sleep(200)
Send("http://192.168.1.1/0_1")
Sleep(300)
Send("{Enter}")
Sleep(800)
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
Sleep(1800)
Send("!{F4}")
Il est 100% fonctionnel
pour moi, mais j'aimerai le rendre utilisable par d'autre personnes...
Or là, mozilla firefox est indispensable, ainsi que la page d'accueil google, et encore plus improbable: le deuxième écran sur lequel s'ouvre mozilla (chez moi).
Comment faire pour rendre toute la manipulation universelle ?
*Lancer Mozilla firefox, ou IE si non installé
*Entrer l'adresse
http://192.168.1.1/0_1 (sous mozilla OU ie, suivant celui qui a été lancé)
*Cliquer ou presser entrer sur le bouton Redémarrer de la page qui s'affiche
*Fermer
En fait c'est la fonction
MouseClick qui me gène car elle ne marchera que chez moi, et le fait que
Firefox soit indispensable.
Quelqu'un peut m'aider svp ? Cest surement quelque chose de très basique, mais plus j'essaie, plus je m'enfonce :/
Merci !
Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : dim. 30 nov. 2008 14:23
par timmalos
Salut Mastersey
Pour ton problème, tu va avoir besoin de l'udf IE.au3
Voici le script qui resoud ton problème (j'ai eu envie de le faire

)
Code : Tout sélectionner
#include <IE.au3>
$oIE = _IECreate ("http://192.168.1.1/0_1",0,1)
_IELoadWait($oIE);Permet d'attendre que la page soit lancée
Send("{Enter}")
_IELoadWait($oIE);Permet d'attendre que la page soit lancée
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{ENTER}")
_IELoadWait($oIE);Permet d'attendre que la page soit lancée
Send("!{F4}")
Maintenant, je n'ai pas de 9Box, donc je peux pas t'aider, mais ya suremeent moyen de faire ca caché, c'est à dire en mode invisible, ca pourrait etre interessant.
Mais pour ca, il faudrait que j'ai accès aux codes sources des pages. Pour le faire toi meme, tourne toi du coté des exemples de l'udf _IE, en appuyant sur F1 dans scite,
et des fonctions:
Code : Tout sélectionner
$oForm = _IEFormGetCollection ($oIE,0)
_IEFormElementGetObjByName ($oForm, "")
_IEFormSubmit($oForm)
Par exemple, la ou tu appuie sur Entrer, je pense qu'un simple :
Marcherait
Si tu arrive a supprimer toutes les fonctions send(TAB) et Send(Enter) en les remplacant par des fonctions de _Ie, tu pourra alors remplacer le :
Par
pour lancer en mode invisible, sans qu'aucune fenetre ne s'ouvre ...
Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : dim. 30 nov. 2008 15:47
par Mastersey
Merci d'avoir répondu si vite
timmalos,
je vais essayer de comprendre et faire tout ce que tu m'a dit, je posterai ensuite le résultat avec toutes les améliorations auxquelles tu a pensé !

Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : lun. 01 déc. 2008 12:46
par SagePourpre
Juste une astuce ...
Tu peux remplacer
Code : Tout sélectionner
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Send("{TAB}")
Par
Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : lun. 01 déc. 2008 19:02
par Mastersey
Merci ^^
Ça fera déjà moins moche :p
Edit: En regardant dans l'aide, je me perds un peu... le code de la page, enfin du bouton "redémarrer" de la page est:
Code : Tout sélectionner
<form method="post" action="/0_1">
<div class="button_submit"><button type="submit" name="submit">Redémarrer</button></div>
</form>
Si je ne me suis pas trompé ...
C'est possible de faire une action directement dessus ? Sans utiliser de TAB ?
Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : ven. 05 déc. 2008 19:28
par Mastersey
J'ai réussi à le faire ! ^^
Code : Tout sélectionner
#include <IE.au3>
$oIE = _IECreate ("http://192.168.1.1/0_1",0,0)
_IELoadWait($oIE)
$oSubmit = _IEGetObjByName ($oIE, "submit")
_IEAction ($oSubmit, "click")
[i][color=#FF0000]_IELoadWait($oIE)
Fermeture ?[/color][/i]
Il s'exécute bien en caché, en plus d'agir directement sur la fonction submit de la page.
Une question subsiste malgré tout (
code coloré):
La fenêtre ouverte, même si elle est cachée, ne doit-elle pas être refermée une fois l'action terminée ?
Sinon ma prochaine étape, bien qu'optionnelle pour un script comme celui-là, est de prévenir la demande du login et du mot de passe d'accès à la configuration de la Box (par défaut: admin:admin)...
Merci!

Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : ven. 05 déc. 2008 21:44
par Tlem
Pour la fermeture de la fenêtre, vous pouvez utiliser ceci :
En ce qui concerne la demande de login et de mot de passe, regardez simplement si l'objet Login ou mot de passe et présent dans la page (tout comme vous l'avez fait pour submit), ensuite vous devez savoir.

Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : sam. 06 déc. 2008 13:34
par Mastersey
Merci Tlem.
Voici donc où j'en suis:
Code : Tout sélectionner
#include <IE.au3>
$oIE = _IECreate ("http://192.168.1.1/0_1",0,0)
_IELoadWait($oIE)
;Authentification
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_login")
_IEFormElementSetValue ($oText, "admin")
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_password")
_IEFormElementSetValue ($oText, "admin")
_IEFormSubmit ($oForm, 0)
_IELoadWait($oIE)
;Redémarrage
$oSubmit = _IEGetObjByName ($oIE, "submit")
IEAction ($oSubmit, "click")
_IELoadWait($oIE)
_IEQuit ($oIE)
Dernière étape:
Faire en sorte que la partie "Authentification" ne s'exécute QUE lorsque la page qui s'ouvre avec
$oIE = _IECreate ("http://192.168.1.1/0_1",0,1) s'appelle
"neufbox - Authentification", sinon exécuter directement le "Redémarrage".

Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : dim. 07 déc. 2008 09:36
par Tlem
Regardez simplement après avoir chargé la page les objets disponibles.
Si _IEFormGetObjByName ($oIE, "form_web_login") ne vous retourne pas d'erreur, c'est que vous êtes dans la page login.
Donc vous faite le reste du code pour l'authentification, sinon vous allez direct au redémarrage.
Il vous faudra donc utiliser la condition IF.
Re: [..] Aide script reboot neufbox4 - Mozilla Firefox et/ou IE
Posté : dim. 07 déc. 2008 12:02
par Mastersey
Euuhh :$
J'ai fait ce que tu m'a dis Tlem, ça marche, mais je suis pas sûr de moi du tout ^^
j'ai l'impression d'avoir fait quelque chose au pif, plein d'erreurs, mais qui bizarrement: marche !
Code : Tout sélectionner
#include <IE.au3>
;Lancement...
$oIE = _IECreate ("http://192.168.1.1/0_1",0,1)
_IELoadWait($oIE)
;Si...
If ($oIE, _IEFormGetObjByName) = "form_web_login" Then
$AuthNB, $RebootNB
Else
$RebootNB
EndIf
;Authentification
Func _AuthNB($AuthNB)
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_login")
_IEFormElementSetValue ($oText, "admin")
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_password")
_IEFormElementSetValue ($oText, "admin")
_IEFormSubmit ($oForm, 0)
_IELoadWait($oIE)
EndFunc
;Redémarrage
Func _RebootNB($RebootNB)
$oSubmit = _IEGetObjByName ($oIE, "submit")
_IEAction ($oSubmit, "click")
_IELoadWait($oIE)
EndFunc
;Quitter
_IEQuit ($oIE)
Alors ? Je me suis trompé dans les If et les Func hein ? Vu que j'y connais rien...
J'en suis sûr! ^^
Merci pour votre aide en tout cas !
Re: [..] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 07 déc. 2008 12:43
par timmalos
Gagné
Correction:
► Afficher le texte
Code : Tout sélectionner
#include <IE.au3>
;Lancement...
$oIE = _IECreate ("http://192.168.1.1/0_1",0,1)
_IELoadWait($oIE)
;Si...
If ($oIE, _IEFormGetObjByName) = "form_web_login" Then
_AuthNB()
_RebootNB()
Else
_RebootNB()
EndIf
;Authentification
Func _AuthNB()
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_login")
_IEFormElementSetValue ($oText, "admin")
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_password")
_IEFormElementSetValue ($oText, "admin")
_IEFormSubmit ($oForm, 0)
_IELoadWait($oIE)
EndFunc
;Redémarrage
Func _RebootNB()
$oSubmit = _IEGetObjByName ($oIE, "submit")
_IEAction ($oSubmit, "click")
_IELoadWait($oIE)
EndFunc
;Quitter
_IEQuit ($oIE)
Re: [..] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 07 déc. 2008 12:47
par Mastersey
Héhé ^^ Je le savais !
Merci timmalos !!
Je peux considérer que ma demande comme résolue je crois

Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : sam. 03 janv. 2009 21:32
par dada79
Bonjour tout le monde !
Je suis tombé sur ce topic fort interessant et je tiens a remierçier tout d' abord ses auteur pour le travail accompli cependant en essayant le code indiqué je me suis aperçu qu'il y avais une petite erreur dans le test de la structure conditionnel je me suis donc permis de faire la correction je mets donc pour ceux que ça interesse le code qui fonctionne .
Code : Tout sélectionner
#include <IE.au3>
;Lancement...
$oIE = _IECreate ("http://192.168.1.1/0_1",0,1)
_IELoadWait($oIE)
;Si...
If _IEFormGetObjByName ($oIE, "form_web_login") <> 0 Then
_AuthNB()
_RebootNB()
Else
_RebootNB()
EndIf
;Authentification
Func _AuthNB()
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_login")
_IEFormElementSetValue ($oText, "admin")
$oForm = _IEFormGetObjByName ($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName ($oForm, "web_password")
_IEFormElementSetValue ($oText, "admin")
_IEFormSubmit ($oForm, 0)
_IELoadWait($oIE)
EndFunc
;Redémarrage
Func _RebootNB()
$oSubmit = _IEGetObjByName ($oIE, "submit")
_IEAction ($oSubmit, "click")
_IELoadWait($oIE)
EndFunc
;Quitter
_IEQuit ($oIE)
voila bon c'est surement pas parfait comme test mais c'est le seul myen que j'ai trouver pour valider le test .
Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : sam. 03 janv. 2009 22:16
par timmalos
Petite amélioration:
Code : Tout sélectionner
#include <IE.au3>
$oIE = _IECreate("http://192.168.1.1/0_1", 0, 1, 1)
If _IEFormGetObjByName($oIE, "form_web_login") <> 0 Then _AuthNB()
_RebootNB()
Func _AuthNB()
If FileExists(@ScriptDir & "\parametres.ini") Then
Global $login = IniRead(@ScriptDir & "\parametres.ini", "9BOX", "login", "admin"), $password = IniRead(@ScriptDir & "\parametres.ini", "9BOX", "password", "admin")
Else
Global $login = InputBox("Script de Reboot 9BOX", "Veuillez Renseigner votre login", "admin")
IniWrite(@ScriptDir & "\parametres.ini", "9BOX", "login", $login)
Global $password = InputBox("Script de Reboot 9BOX", "Veuillez Renseigner votre password", "admin", "*")
IniWrite(@ScriptDir & "\parametres.ini", "9BOX", "password", $password)
EndIf
$oForm = _IEFormGetObjByName($oIE, "form_web_login")
$oText = _IEFormElementGetObjByName($oForm, "web_login")
_IEFormElementSetValue($oText, $login)
$oText = _IEFormElementGetObjByName($oForm, "web_password")
_IEFormElementSetValue($oText, $password)
_IEFormSubmit($oForm, 0)
_IELoadWait($oIE)
EndFunc ;==>_AuthNB
Func _RebootNB()
$oSubmit = _IEGetObjByName($oIE, "submit")
_IEAction($oSubmit, "click")
_IELoadWait($oIE)
_IEQuit($oIE)
EndFunc ;==>_RebootNB
Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 04 janv. 2009 01:05
par dada79
merçi timmalos en effet c'est nettement mieux de permettre la saisie du login et password via un fichier .ini

Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 04 janv. 2009 11:19
par timmalos
Il faudrait rajouter un SctringEncrypt pour le mot de passe, car la on le stocke lisiblement, c'est pas top .
Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 04 janv. 2009 18:42
par tolf
timmalos a écrit :Il faudrait rajouter un SctringEncrypt pour le mot de passe, car la on le stocke lisiblement, c'est pas top .
C'est un minimum à faire, mais il faut toujours faire attention à ceci :
http://www.autoitscript.fr/forum/viewto ... f=3&t=1192
Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 04 janv. 2009 19:12
par timmalos
String Encrypt est une protection vraiment minimale, il n'y a pas besoin de decompiler le script pour trouver le texte decrypté, avec un algorithme simple de cryptage, sans force brute.
Mais le mot de passe est stocké dans un .ini et je pense qu'il n'est pas possible d'acceder par internet à la page de login, il suffit donc de le proteger de la vue, je pense.
Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 04 janv. 2009 19:13
par dada79
timmalos a écrit :Il faudrait rajouter un SctringEncrypt pour le mot de passe, car la on le stocke lisiblement, c'est pas top .
tu veus dire on le lit facilement ou ? dans le fichier ini , ça parrait normal je vois pas trop comment on peut le crypter ...
Re: [R] NeufBox v. 4 Reboot Script - IExplorer
Posté : dim. 04 janv. 2009 20:14
par timmalos
Disons qu'au lieu de voir $password = Toto
On verra $password = EC4F5GDA7P01