Page 1 sur 1

[..] _IE faire un clique sur un bouton

Posté : mer. 10 juin 2009 21:58
par ethneldryt
Bonjour, voila apres avoir chercher, je ne trouve pas comment faire un clique sur le bouton "entrer dans le chat" de ce site : http://www.cgichat.epiknet.org/irc.cgi ..

Re: [..] _IE faire un clique sur un bouton

Posté : jeu. 11 juin 2009 00:54
par ani
Exemple simple à modifier ;)

Code : Tout sélectionner

Func _Irc($Name,$Password,$Channel="#dialogue")
$oIE= iecreate("http://www.cgichat.epiknet.org/irc.cgi")
$oForm = _IEFormGetObjByName ($oIE, "loginform")
$oName = _IEFormElementGetObjByName ($oForm, "Nickname")
$oPass = _IEFormElementGetObjByName ($oForm, "Password")
$oChan = _IEFormElementGetObjByName ($oForm, "Channel")
;La tu indique té nouvel valeur
_IEFormElementSetValue ($oName, $Name)
_IEFormElementSetValue ($oPass , $Password)
_IEFormElementSetValue ($oChan , $Channel)
;ET on confirme clique bouton :)
_IEFormSubmit ($oForm)
EndFunc

Re: [..] _IE faire un clique sur un bouton

Posté : jeu. 11 juin 2009 10:03
par ethneldryt
salut merci, mais il faut aussi pouvoir envoyer le theme car sinon le tchat bug :

<select name="Format" style="width: 100%;" class="FormEntree"><option>EpiKnet</option><option>Test</option><option>dark</option><option>default</option><option>gothic</option><option>mirc</option></select>

Re: [..] _IE faire un clique sur un bouton

Posté : jeu. 11 juin 2009 13:41
par ani
as tu testé ? car chez moi ce bout de code fonctionne sans bug
le theme, nom d'utilisateur & channel on une valeur par default :o
donc si on indique rien en theme, sa valeur par défault sera epiknet

dans le cas ou tu veux le theme

Code : Tout sélectionner

Func _Irc($Name,$Password,$Channel="#dialogue",$theme="EpiKnet")
$oIE= iecreate("http://www.cgichat.epiknet.org/irc.cgi")
$oForm = _IEFormGetObjByName ($oIE, "loginform")
$oName = _IEFormElementGetObjByName ($oForm, "Nickname")
$oPass = _IEFormElementGetObjByName ($oForm, "Password")
$oChan = _IEFormElementGetObjByName ($oForm, "Channel")
$oTheme = _IEFormElementGetObjByName ($oForm, "Format")

;La tu indique té nouvel valeur
_IEFormElementSetValue ($oName, $Name)
_IEFormElementSetValue ($oPass , $Password)
_IEFormElementSetValue ($oChan , $Channel)
_IEFormElementOptionSelect($otheme,$theme)
;ET on confirme clique bouton :)
_IEFormSubmit ($oForm)
EndFunc

Comme dit précédement le code ci-dessus peut etre optimiser (plus complet)

bonne continuation ;)

Re: [..] _IE faire un clique sur un bouton

Posté : jeu. 11 juin 2009 14:02
par ethneldryt

Code : Tout sélectionner

#include <IE.au3>
$oIE= iecreate("http://www.cgichat.epiknet.org/irc.cgi")
$oForm = _IEFormGetObjByName ($oIE, "loginform")
$oName = _IEFormElementGetObjByName ($oForm, "Nickname")
$oPass = _IEFormElementGetObjByName ($oForm, "Password")
$oChan = _IEFormElementGetObjByName ($oForm, "Channel")
$oTheme = _IEFormElementGetObjByName ($oForm, "Format")

;La tu indique té nouvel valeur
_IEFormElementSetValue ($oName, $Name)
_IEFormElementSetValue ($oPass , $Password)
_IEFormElementSetValue ($oChan , $Channel)
_IEFormElementOptionSelect($otheme,$theme)
;ET on confirme clique bouton :)
_IEFormSubmit ($oForm)
 
voila l'erreur :
(2) : ==> Unknown function name.:
$oIE= iecreate("http://www.cgichat.epiknet.org/irc.cgi")
$oIE= ^ ERROR

Re: [..] _IE faire un clique sur un bouton

Posté : jeu. 11 juin 2009 16:39
par ani
vu que je fait çà de tete, il peut y avoir une erreur toute bête,
iecreate => _iecreate + include ie

bon la dessus.... a demain :o

Re: [..] _IE faire un clique sur un bouton

Posté : sam. 13 juin 2009 22:18
par ethneldryt

Code : Tout sélectionner

#include <IE.au3>

$randpsdo = Ceiling(Random(1,1000))
$pseudo = InputBox("Login IRC autoit","Indiquer un pseudo pour vous connectez","Autoit-guest" & $randpsdo)
if @error Then
    Exit
EndIf
$gui = GUICreate("Chat IRC autoit",800,500)
_IEErrorHandlerRegister()
$ie = _IECreateEmbedded()
$ieobject = GUICtrlCreateObj($ie, 5, 5, 790, 490)
GUISetState()

_IENavigate($ie,"http://www.cgichat.epiknet.org/irc.cgi")

$oForm = _IEFormGetObjByName ($ie, "loginform")
$oName = _IEFormElementGetObjByName ($oForm, "Nickname")
$oPass = _IEFormElementGetObjByName ($oForm, "Password")
$oChan = _IEFormElementGetObjByName ($oForm, "Channel")


_IEFormElementSetValue ($oName, $pseudo)
_IEFormElementSetValue ($oPass , "")
_IEFormElementSetValue ($oChan , "#autoit")

_IEFormSubmit ($oForm)

while 1
    $msg = GUIGetMsg()
    Select
        case $msg = -3
            exit
    EndSelect       
WEnd
 
ce code marche MAIS c'est comme si il n'y avais pas de skin, il manque le menu du haut.
alors que si on clique nous même sur entrer, y'a pas de bug

d'ou viens le probleme ?:s

Re: [..] _IE faire un clique sur un bouton

Posté : sam. 13 juin 2009 23:12
par Iste
J'sais pas, mais j'aime pas _IEFormSubmit(), ca marche une foi sur deux (et encore, je suis gentil, car pour moi ca n'a jamais fonctioné)
Faut que les formulaire soit impec...

Mais heureusement, ya
#include <IE.au3>
_IEAction ( ByRef $o_object, $s_action )
Dans mes cas, ca a toujours fonctionné !

J'ai pas fait le teste sur ta page, mais normalement ya pas de raison

Re: [..] _IE faire un clique sur un bouton

Posté : dim. 14 juin 2009 13:28
par ethneldryt
pour ie action j'y avais pensser, mais je le sais pas comment faire pour retrouver le bouton a cliquer

Re: [..] _IE faire un clique sur un bouton

Posté : dim. 14 juin 2009 16:33
par Iste
ben, faut le retrouver avec son nom et _IEGetObjByName(), mais bon, ya pas de nom... faudrait voir avec _IEFormGetCollection(), mais je suis pas sur que ca marche. Je regarde et j'edit mon post

Edit : et paf :)

Code : Tout sélectionner

#include <IE.au3>
$oIE = _IECreate ("http://www.cgichat.epiknet.org/irc.cgi")
$oForm = _IEFormGetCollection ($oIE, 0)
$oQuery = _IEFormElementGetCollection ($oForm, 5)
_IEAction($oQuery, "click")

Re: [..] _IE faire un clique sur un bouton

Posté : dim. 14 juin 2009 23:44
par ethneldryt
merci, tu peux m'expliquer?;p

Re: [..] _IE faire un clique sur un bouton

Posté : lun. 15 juin 2009 00:06
par Iste
oui mais peut etre pas aussi bien que la doc ;)

_IEFormGetCollection renvoi une variable avec tout les élément de formulaire dedans
_IEFormElementGetCollection renvoi une variable qui désigne un élément du form
pour ca faut lui donner une liste crée avec _IEFormGetCollection et le numero de l'élément.
_IEAction simule une action, ici, un "click" sur l'élément voulu.

En gros
_IECreate : crée moi une page IE
_IEFormGetCollection : liste moi tout les machin
_IEFormElementGetCollection : prend le nom du 5em
_IEAction : et clic dessus