Page 2 sur 2
Publié : mar. 19/juin/2007 21:46
par bombseb
tu a de la chance, j'ai l'impression qu'il y a un control web browser dans l'editeur visuel de pb (un machin avec "www" dedans)
edit : oui je confirme c'est le "webgadget", amuses toi bien

Publié : mer. 20/juin/2007 5:01
par Kwai chang caine
Moi qui croyais que quasi tout ce que l'on pouvait faire en C etait faisable en pure
Et pour celui que tu as réalisé en C
1/ Fait il les fonctions que je t'ai décrite ???
2 / Si oui, Y'a moyen de voir a quoi ça ressemble ??
En image ou en exe
Comme j'ai jamais vu un BOT en vrai
Depuis que tu m'en a parlé, j'ai bavé sur ma layette
Merci de ton aide
Publié : mer. 20/juin/2007 7:10
par Backup
Kwai chang caine a écrit :Moi qui croyais que quasi tout ce que l'on pouvait faire en C etait faisable en pure

heu ! , il me semble pourtant qu'il te dit que c'est possible !!
d'ailleurs mon prg de Lotto , qui permet de verifier son jeu par rapport au tirage, et donc ses gains, interroge la page html de la française des jeux
pour récuperer les numero sortis !!
voici comment on peut recuperer le contenu d'une page html
le contenu sera recuperé dans la variable "Url2Text( #Site )"
;/ Author : Pille
; Proxy like this : "192.168.0.1:8080"
ProcedureDLL.s Url2Text2(Url.s, OpenType.b,ProxyAndPort.s)
; 1 INTERNET_OPEN_TYPE_DIRECT Resolves all host names locally.
; 0 INTERNET_OPEN_TYPE_PRECONFIG Retrieves the proxy Or direct configuration from the registry.
; 4 INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY Retrieves the proxy Or direct configuration from the registry And prevents the use of a startup Microsoft JScript Or Internet Setup (INS) file.
; 3 INTERNET_OPEN_TYPE_PROXY Passes requests To the proxy unless a proxy bypass list is supplied And the name To be resolved bypasses the proxy. In this Case, the function uses INTERNET_OPEN_TYPE_DIRECT.
isLoop.b=1
INET_RELOAD.l = $80000000
hInet.l=0
hURL.l=0
Bytes.l=0
Buffer.s=
Space (2048 )
res.s=
""
hInet =
InternetOpen_ (
"" , OpenType, ProxyAndPort,
"" , 0)
hURL =
InternetOpenUrl_ (hInet, Url,
#Null , 0, INET_RELOAD, 0)
Repeat
InternetReadFile_ (hURL,@Buffer,
Len (Buffer), @Bytes)
If Bytes = 0
isLoop=0
Else
res = res +
Left (Buffer, Bytes)
EndIf
Until isLoop=0
InternetCloseHandle_ (hURL)
InternetCloseHandle_ (hInet)
ProcedureReturn res
EndProcedure
ProcedureDLL.s Url2Text(Url.s)
ProcedureReturn Url2Text2(Url,1,
"" )
EndProcedure
;/ Test
#Site =
"http://google.com"
MessageRequester (
#Site ,Url2Text(
#Site ))
Debug Url2Text(
#Site )
Publié : mer. 20/juin/2007 8:04
par Kwai chang caine
Oui, je crois que j'avais deja vu ce code qui est tres bien
En fait le plus dur est pas trop (tout est relatif, pour moi tout est dur

) de lire la page car au pire on pourrais faire CTRL + A et copier/coller et on aurait le texte visible sur lapage.
Le plus dur c'est d'envoyer des ordres.
Pour ecrire y'a la bidouille des sendkeys, mais je crois que le plus dur c'est de se positionner dans la page et toujours savoir ou on est, et c'est la que le code de DEVILDOG est exceptionnel mais le seul probleme de son code, c'est que comme apparement les boutons, champs textes, et images sont considérés (je crois) comme des fenetres elle doivent avoir un handle et donc le code donne les coordonnées du handle qu'il survole et donc celui de l'objet et non plus de la page.
Ce qui fait que l'on est perdu des que l'on survole un de ces objets.
J'ai tenté de poser la question sur le forum US avec mon EnglishPatois bien de chez nous, mais pour l'instant pas de reponses
Ils doivent etre moins patient que vous les UsMans

Publié : mer. 20/juin/2007 9:56
par bombseb
ah bah voilà ! avec le code Dobro tu devrais pouvoir t'en sortir....
En fait le plus dur est pas trop (tout est relatif, pour moi tout est dur ) de lire la page car au pire on pourrais faire CTRL + A et copier/coller et on aurait le texte visible sur lapage.
non je ne parlais pas de lire la page, mais plutot le code source html de la page !
Le plus dur c'est d'envoyer des ordres.
non ca c'est le plus simple
avec un control webgadget il te suffit de le faire naviguer vers une url pour donner un "ordre"
par exemple si tu veux simuler un click sur le bouton ou le lien "toto", tu regarde vers quoi ce lien pointe (click droit propriété ou en regardant dans le source html) puis tu fait naviguer le webgadget vers ce lien
mais je crois que le plus dur c'est de se positionner dans la page et toujours savoir ou on est
oublie ca, tu vas t'emmerder en faisant comme ca...
enfin ce n'est qu'un conseil hein

Publié : mer. 20/juin/2007 10:11
par Kwai chang caine
J'essaiyais de positionner la souris, car il y a certains boutons qui n'ont pas de "liens"
Mais je crois de mémoire des actions.
J'avais abandonné, il y a un an quand je tentais de faire ça en VB à cause d'eux.
En plus le focus n'etait pas sur eux donc pas moyen de faire return.
Il restait les fameux sendkey "TAB", mais il fallait etre sur de bien compter le nombre de TAB pour ne pas se decaler et faire une bourde.
C'etait trop aleatoire.
C'est pour ça que lorsque j'ai vu le code de DEVILDOG, je me suis dit que cette fois on serait sur de cliquer sur le bon bouton puisque on connais sa position dans la page.
Publié : mer. 20/juin/2007 10:34
par bombseb
pour les boutons sans lien en fait ca se présente comme ceci (j'ai pris exemple sur le formulaire de poste du forum):
<form action "mapage.php">
<input type="text" name="subject" value="la valeur" />
<input type="submit" name="post" value="Envoyer" />
</form>
pour mon exemple pour simuler un click sur ce bouton il faut que tu appelle "mapage.php" en lui envoyant le contenu du champ "subject" en post
sache qu'il y a deux moyen d'envoyer des paramètres à une page
- par GET : les params sont envoyés dans l'url
ex :
http://www.toto.com/mapage.php?id=3&truc=toto
- Par POST : les params sont invisible dans l'url, ils sont envoyés dans les requêtes http
Publié : mer. 20/juin/2007 11:26
par Kwai chang caine
Merci de ta reponse BombSeb
Je ferais des essais.
Mais dis moi, ça ne t'ai jamais arrivé de ne pas pouvoir faire une action sur une page HTML ??
Publié : mer. 20/juin/2007 11:35
par bombseb
comment ca ? quel genre d'action ?
Publié : mer. 20/juin/2007 12:28
par Kwai chang caine
Bah justement , un bouton qui t'aurai résisté, un champs que tu n'aurais pas pu remplir, etc ....
Enfin une action que tu aurais pu faire a la main, mais que tu ne sois pas arrivé a automatiser ?
D'apres mes souvenir, il y avais aussi un bouton qui en fait etait une image.
Eh bah, en VB je n'avais pas trouvé comment appuyer dessus

Publié : mer. 20/juin/2007 15:14
par bombseb
un bouton qui est en fait une image, je pense que c'est tout simplement un lien href tout bête, donc tu fait comme pour un lien normal
sinon, oui je me suis heurté à plusieurs problèmes... dont un qui m'a vraiment emmerdé
Pour envoyer tes valeurs par POST, il faut d'abord utiliser la fonction urlencode(mavariable), sinon ca peux ne pas marcher, mais bon en purebasic je ne sais pas si cette fonction existe
sinon, oui j'ai eu aussi un autre Problème que je n'ai pas éssayé de résoudre.... les kaptcha (un mot de plus

) c'est une protection pour vérifier que l'utilisateur est bien un humain et non un bot. Quand tu t'inscrit sur un forum souvent tu à une image avec des lettres et des chiffres déformés, et tu doit taper ce code dans un champs pour prouver que tu est bien humain c'est- ce qu'on appelle un kaptcha
Juste une question, le bot que tu veux faire c'est pour automatiser des taches sur le site de ta boite ? ou sur un site externe à ta boite ?
Publié : mer. 20/juin/2007 22:18
par Kwai chang caine
Kaptcha !!!!
Ouahhh ce mot, a quelle heure du matin il faut se lever pour inventer un truc pareil.
Ou alors je sais, le mec il a dit :
Le nom de cette nouvelle protection sera .......et il a eternué mortel.
Et comme y'avais noir de journaliste, eh ben ils ont retranscrit comme ils ont pu
Parce qu'un mec en pleine possession de ses moyens intellectuels ne peut pas pondre un nom pareil, sauf sous la torture
En tout cas merci pour tes explications tres interessante.
En fait pour le site, c'est pour ma boite, ils en ont en intranet et en internet et en plus en HTTPS, (ils ont les moyens sauf pour les ouvriers)
Mais ce serait aussi interessant pour moi et mes sites a deux balles