Página 1 de 1

Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 13:54
por emma93
Hola, bueno tenía una consulta que hacer.

Y por la dificultad que debe tener (eso supongo), la posteo en esta zona.

Es posible mostrar una imagen de una web?

Yo tengo un CAPTCHA que quiero mostrar en pantalla, para que el usuario ingrese código.

Pero la web en la que el captcha está no cambia nunca. Entonces quiero saber si puedo listar ese CAPTCHA dentro de un control de AutoIT.

Espero que me puedan ayudar.

Salu2

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 15:36
por Chefito
Que página web es y que imagen????

La forma más facil de hacer eso sería cargando solamente esa imagen en un control IE. Utiliza la función _IECreateEmbedded para incrustar un objeto IE y ponle que carge inicialmente la dirección de esa imagen.

Saludos.

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 15:49
por emma93
La imagen es la de:

Código: Seleccionar todo

http://www4.bux.to/login.php
Pero fijate, que siempre al querer sacar la URL de la imagen te da como resultado esta dirección:

Código: Seleccionar todo

http://www4.bux.to/captcha/imagebuilder.php
Yo creo que es casi imposible hacerlo :(

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 17:48
por gna08
Bueno hermano, imposible no es, si es lo k pienso solo existe una forma de obter esa imagen y agregarlo a autoit.
En primer lugar la images es png, lo cual no es soportada en si por autoit, suponiendo k lo keres meter en un GuictrlCreateImage(). Opcion: Usar la libreria GDIPLUS para cargar un png.
En segundo lugar, como obtenes esa imagen, ese captcha, sencillo, con la funcion que agrego en el siguiente.

Proba este script, fijate si te funciona:

Código: Seleccionar todo

#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
Opt("GUIOnEventMode", 1)

$hn = GUICreate("Captcha", 142, 82, 213, 128)
GUISetOnEvent($GUI_EVENT_CLOSE, "Salir")
GUICtrlCreateButton("Cargar captcha", 24, 48, 91, 25, 0)
GUICtrlSetOnEvent(-1,"_load")
GUISetState(@SW_SHOW)

While 1
	Sleep(10)
WEnd

Func Salir()
    Exit
EndFunc 

Func _load()
	ControlDisable("Captcha", "", ControlGetHandle("Captcha", "", "Button1"))
	_GDIPlus_StartUp()
	InetGet("http://www4.bux.to/captcha/imagebuilder.php", @TempDir & "\captcha.png",1)
	_GDIPlus_GraphicsDrawImage(_GDIPlus_GraphicsCreateFromHWND($hn), _GDIPlus_ImageLoadFromFile(@TempDir & "\captcha.png"), 12, 16)
	_GDIPlus_Shutdown()
	Sleep(5000)
	Salir()
EndFunc
Debo aclarate k si el captcha lo keres usar por ejemplo para k el user lo identifique manualmemte talves no te funcione, pork lo genera para una unika intancia, ese code es para obtener solo el captcha,
Otra opciones es ejecutar un js k te genere la kaptcha especificada, yaa k de el depende la fecha y hora.
Decime cual es tu idea, k keres hacer, asi vemos kual te sirve :smt023

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 19:38
por Chefito
Nada nada....no hace falta nada de eso :smt001 . Simplemente hazme caso. Yo también estudié hace meses el poder mostrar estas imagenes para registrarse y demás.
Mira....estas página tienen una peculiaridad. Seguramente a esta le pasa lo mismo. Primero, habre la página http://www4.bux.to/login.php, aunque sea oculta o como quieras. Y luego, muestra la imagen en un objeto como te dije, llamando a la dirección http://www4.bux.to/captcha/imagebuilder.php.
Aunque parezca mentira, una vez que has cargado la imagen desde la página principal, al generar después la imagen en otro IE distinto, suele servir (aunque sean distintas). Por que? Supongo que se regirá por la misma formula de generación de claves.....pudiendo ser validas muchas de éstas.

Y si quieres probarlo tú antes de hacerlo en AutoIt, habre una ventana del explorer. Carga la página (http://www4.bux.to/login.php). Luego habre otra. Carta esta otra página (http://www4.bux.to/captcha/imagebuilder.php) para que te de otra imagen. Y finalmente, intentate registrar con la clave de la segunda página. Casi seguro que se registra :smt005 .
Yo es que no puedo hacerlo porque no estoy registrado.

Pruebalo y comentanos.

Saludos.

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 19:41
por gna08
tiene razon chefito :smt003
:smt023

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 20:33
por emma93
Tiene razón chefito, pero hay UN sólo problema.

Se puede loguear de aquella forma que dice chefito, solo una vez con el Captcha ese.

Abre la pantalla de login, luego abre la web del captcha, logueate con el código de la web de captcha y podrás.

Ahora anota el código anterior, y cierra el Internet.

Prueba loguearte nuevamente con ese código, y no podrás.

Ahora, como hágo para poder mostrar la imagen de ImageBuilder.php ???

Espero que tengan solución.

Salu2

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 21:05
por Chefito
Hombre hombre.....claro que solo una vez. Pero eso pasa con la página principal. Y si no fijate y verás que cuando fallas en algo, se recarga una nueva imagen con un nuevo código.
Pues la solución a eso es clara, no? Tienes que ver si el usuario falla en algo, y si falla ponerle un mensaje de error y volver a recargar la imagen (http://www4.bux.to/captcha/imagebuilder.php).
Como puedes detectar si se ha logeado bien el usuario? Pues de muchas formas. Una que me gusta mucho a mi es mirando y analizando el texto de la página. Por ejemplo, con _IEBodyReadText puedes almacenar todo el texto de la página, y buscar en este texto el error.....o ver si ha pasado a la siguiente página. Se puede hacer de muchas formas y con muchas comparaciones distintas. A gusto del consumidor :smt001 .
emma93 escribió:Ahora, como hágo para poder mostrar la imagen de ImageBuilder.php ???
Bueno....para mostrarlo ya te dije que tenías que utilizar (_IECreateEmbedded). Buscala en la ayuda y mira su ejemplo. Adaptalo a tu programa y ya está.
Intenta tú algo, y si tienes algún problema dinoslo....pero intenta algo.

Saludos.

Re: Captcha Con AutoIT? :(

Publicado: 10 Feb 2009, 21:31
por gna08
Jejej, cierto, ay k probar uno, :smt003