AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 comment obtenir une position dans une fenetre ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
looping
Débutant
Débutant


Nombre de messages : 5
Date d'inscription : 16/02/2007

MessageSujet: comment obtenir une position dans une fenetre ?   2007-02-17, 14:05

voici mon probleme :

dans une page internet, rentrer a chaque nouvelle connection un login est parfois enervant.

comment obtenir la position d'un des control afin de deplacer le curseur de la sourie dessus ?
utilisent t'ils tous la meme fonction de recherche ?

[code];demarrage avec une question.
$answer1 = MsgBox(4, "test 1", "voulez vous lancez le test 1 ?")

;quitte le programe si vous selectionner non.
If $answer1 = 7 Then
MsgBox(0, "test 1", "merci pour votre visite.")
Exit
EndIf


; lance www.ogame.fr
$answer2 = MsgBox(64, "test 1", "ouverture de ogame.")
$oIE=ObjCreate("InternetExplorer.Application.1") ; Create l'application Internet Explorer

; Do some browsing activities
$oIE.Visible=1
$oIE.RegisterAsDropTarget = 1
$oIE.RegisterAsBrowser = 1
$oIE.Navigate( "http://www.ogame.fr/" )




;attend l'ouverture de la page avec ce titre.
$answer3 = MsgBox(64, "test 1", "attente de la reponse du titre.")
WinWaitActive("OGame.fr - Microsoft Internet Explorer")

;agrandissement de la fenetre.
WinSetState ( "OGame.fr - Microsoft Internet Explorer", "", @SW_MAXIMIZE )


$pos = ControlGetPos("OGame.fr - Microsoft Internet Explorer", "", "ClassNameNN")
MsgBox(0, "Window Stats:", "POS: " & $pos[0] & "," & $pos[1] & " SIZE: " & $pos[2] & "," & $pos[3] )
; Now that the Notepad window is active type some text
$answer4 = MsgBox(64, "test 1", "deplace la sourie sur la selection d'un univer.")
MouseClick("left",$pos[0] + 1,& $pos[1] + 1)


sleep(3000) ; Give it time to load the web page

$SinkObject=0 ; Stop IE Events
$oIE.Quit ; Quit IE
$oIE=0
exit[/code]

a partir d'un certain momment, je n'ai pas changer les commentaires puisque je bloque juste avant.

le but est de creer un script qui choisi l'univers et entre les info du login et passe, afin de ne pas repeter manuellement cette etape toutes les 30 minutes environs.
je connais la fonction send(), donc, ce n'est pas la que je bloque, mais, juste sur la positon des control ou doivent etre selectionner et entree les donnees.
je bloque donc a la fonction : ControlGetPos().


ps :
merci de ne pas donner une reponse vague, ni de poster un lien sur un site anglais comme reponse.
si dans votre reponse il y a une fonction du type :
fonction( option1, option2, option3, etc... )
merci de detailler la fonction afin que la reponse soit le plus clair possible en expliquant comment obtenir chaque option et sont utilite pour la fonction.

[color=orange]demande modifier pour etre plus clair[/color].


Dernière édition par le 2007-02-17, 14:50, édité 6 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 14:30

quel est ton but?
un lien du site?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 14:34

ah tu viens d'éditer....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 14:36

si tu veux j'avais déjà fais un truc pour ogame,j'avais modifié la page html en y mettant le pseudo et le mot de passe et l'univers,il suffisait juste de lancer la page html et de cliquer sur ok(qui peut aussi être simulé avec un javascript).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
looping
Débutant
Débutant


Nombre de messages : 5
Date d'inscription : 16/02/2007

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 14:41

en fait, je joue a plusieur jeu online du meme type que ogame.
j'alterne chaque jeu toutes les 10 minutes environ et donc, j'aimerais creer un script pour chaque jeu, afin de me loguer automatiquement, histoire d'eviter la repetition manuelle du login.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 14:45

Pour repérer les fonctions utiliser l'application autoit window info qui te donne toutes les infos sur (et dans) une fenêtre.

Sinon tu peux aussi te créer les pages html modifié pour chaque jeu,préremplis8) .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 14:47

étant méga débutant j'aurias plutôt regardé du coté du code source pour retrouver les liens (nom) tel que login(tabindex2 -name:login) /pass (tabindex3-name:pass)/univers (tabindex1-name:uni)

sa peut etre sympathique, vais faire une recherche sur l'autoconnection y a peut être une source sur le forum anglais dont je comprend rien du tout ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 14:53

Oui, on peut utiliser
[size=18]#include <INet.au3>
_INetGetSource ( $s_URL )[/size]

pour avoir la source et faire des recherches...

Mais il y a une grande librairie pour IE dans autoit,tape simplement
[size=12]#include <IE.au3>
_IEFormReset ( ByRef $o_object )
[/size]
dans l'aide,ainsi tu peux remplir les formulaire !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-17, 23:03

sa va paraître étrange mais peut-on réaliser automatiquement les tâches ?

comment ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-18, 04:04

Automatiquement....euh plusieurs simulations de la touche TAB puis taper le pseudo etc ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-18, 15:44

plutôt automatiser les constructions, recevoir une popup quand x a fini, possible çà ?, vu qui y a un évènement de temp.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
looping
Débutant
Débutant


Nombre de messages : 5
Date d'inscription : 16/02/2007

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-18, 17:09

j'ai regarder dans le fichier : <INet.au3>
afin d'etudier la fonction : _INetGetSource ( $s_URL )
mais, il n'y a aucune explication des differentes parties qui composent la fonction de base.

[code];===============================================================================
;
; Function Name: _INetGetSource()
; Description: Gets the source from an URL without writing a temp file.
; Parameter(s): $s_URL = The URL of the site.
; Requirement(s): DllCall/Struct & WinInet.dll
; Return Value(s): On Success - Returns the source code.
; On Failure - 0 and sets @ERROR = 1
; Author(s): Wouter van Kesteren.
;
;===============================================================================
Func _INetGetSource($s_URL, $s_Header = '')

If StringLeft($s_URL, 7) <> 'http://' And StringLeft($s_URL, 8) <> 'https://' Then $s_URL = 'http://' & $s_URL

Local $h_DLL = DllOpen("wininet.dll")

Local $ai_IRF, $s_Buf = ''

Local $ai_IO = DllCall($h_DLL, 'int', 'InternetOpen', 'str', "AutoIt v3", 'int', 0, 'int', 0, 'int', 0, 'int', 0)
If @error Or $ai_IO[0] = 0 Then
DllClose($h_DLL)
SetError(1)
Return ""
EndIf

Local $ai_IOU = DllCall($h_DLL, 'int', 'InternetOpenUrl', 'int', $ai_IO[0], 'str', $s_URL, 'str', $s_Header, 'int', StringLen($s_Header), 'int', 0x80000000, 'int', 0)
If @error Or $ai_IOU[0] = 0 Then
DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IO[0])
DllClose($h_DLL)
SetError(1)
Return ""
EndIf

Local $v_Struct = DllStructCreate('udword')
DllStructSetData($v_Struct, 1, 1)

While DllStructGetData($v_Struct, 1) <> 0
$ai_IRF = DllCall($h_DLL, 'int', 'InternetReadFile', 'int', $ai_IOU[0], 'str', '', 'int', 256, 'ptr', DllStructGetPtr($v_Struct))
$s_Buf &= StringLeft($ai_IRF[2], DllStructGetData($v_Struct, 1))
WEnd

DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IOU[0])
DllCall($h_DLL, 'int', 'InternetCloseHandle', 'int', $ai_IO[0])
DllClose($h_DLL)
Return $s_Buf
EndFunc ;==>_INetGetSource[/code]


donc, a quoi referent ils :
- [color=darkred]$s_Header[/color]
- [color=darkred]$ai_IRF[/color]
- [color=darkred]$s_Buf[/color]
- [color=darkred]$ai_IO[/color]
- [color=darkred]$ai_IOU[/color]
- [color=darkred]$v_Struct[/color]

ensuite, je vois que le mot : [color=blue]Local[/color] apparait plusieur fois dans la fonction, a quoi sert il ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: comment obtenir une position dans une fenetre ?   2007-02-18, 23:51

Regarde plutôt dans le fichier d'aide

La fonction s'utilise comme ça _INetGetSource ( "url de la page" ), et elle renvoit la source de la page ou 0 si la page n'existe pas.

Local sert à définir une variable qu'à l'intérieur d'une fonction,une fois la fonction terminée la variable est détruite.

Global sert à définir une variable dans la globalité du script,elle ne sera jamais détruite avant qu'un script ne se termine.

Les variables ne sont pas importantes car la fonction marche,c'est l'essentiel,il ne faut pas modifier cet UDF(user defined function) mais juste l'utiliser.

Si tu veux quand même savoir à quoi elle servent,tu analyse.
Par exemple:
[code]$ai_IO = DllCall($h_DLL, 'int', 'InternetOpen', 'str', "AutoIt v3", 'int', 0, 'int', 0, 'int', 0, 'int', 0)
[/code]
la variable $ai_IO contient ce que la fonction DllCall renvoit...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
Contenu sponsorisé




MessageSujet: Re: comment obtenir une position dans une fenetre ?   Aujourd'hui à 16:31

Revenir en haut Aller en bas
 
comment obtenir une position dans une fenetre ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment mettre une image gif dans la fenetre "logo du forum" forum en phpbb3
» Comment changer le message de la fenetre internet
» comment obtenir l'arcade jeux pour phppBB3
» Comment obtenir une URL d'un lecteur
» Je voudrez s'avoir comment autorisé les accent dans mais page html.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: