[..] _IE faire un clique sur un bouton

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ethneldryt
Status : Hors ligne

[..] _IE faire un clique sur un bouton

#1

Message 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 ..
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

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

#2

Message 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
ethneldryt
Status : Hors ligne

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

#3

Message 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>
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

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

#4

Message 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 ;)
ethneldryt
Status : Hors ligne

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

#5

Message 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
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

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

#6

Message 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
ethneldryt
Status : Hors ligne

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

#7

Message 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
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

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

#8

Message 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
Signez ici
ethneldryt
Status : Hors ligne

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

#9

Message par ethneldryt »

pour ie action j'y avais pensser, mais je le sais pas comment faire pour retrouver le bouton a cliquer
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

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

#10

Message 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")
Signez ici
ethneldryt
Status : Hors ligne

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

#11

Message par ethneldryt »

merci, tu peux m'expliquer?;p
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

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

#12

Message 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
Signez ici
Répondre