Página 1 de 1

Problema con la creación de Objeto

Publicado: 21 May 2012, 06:23
por Horacio
Hola a todos, estoy comenzando a estudiar el tema y tomé como referencia la página http://es.scribd.com/doc/48235203/Libro-Autoit.
Estaba todo bien hasta que uno de lo ejemplos no lo pude solucionar, me da error:
"The requested action with this object has failed.:
$oHTTP.Send()
$oHTTP.Send()^ ERROR
"

El código parece sencillo y es :
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET","http://www.AutoItScript.com")
$oHTTP.Send()
$HTMLSource = $oHTTP.Responsetext


probé cambiando el nombre de varias páginas pero siempre me da el mismo error.¿Faltará declarar algo o alguna librería?
Desde ya agradezco si me pueden dar una mano, recuerden que me estoy iniciando y quizás peco de ignorante.
Un abrazo a todos.

Re: Soy nuevo y necesito Ayuda

Publicado: 21 May 2012, 13:28
por arkcrew
Hola,

En primer lugar por eso de ser nuevo y tal, te comento que para que podamos echarte un cable más rápidamente, es mucho mejor que modifiques el título de tu pregunta, cuando yo leo, "soy nuevo y necesito ayuda" pues no se por donde cogerlo, en cambio si leo, problema con la creación de un objeto o problema con objetos o algo similar es mucho más útil.

El código ese no tiene mucha más complicación ya que al ser un objeto no necesitas declarar ninguna librería.

Lo que está fallando aqui es el objeto, puedes ver que error da autoit de forma más detallada pegando esto en tu código:

Código: Seleccionar todo

$oMyError = ObjEvent("AutoIt.Error","MyErrFunc")    ; Initialize a COM error handler
; This is my custom defined error handler
Func MyErrFunc()
  Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !"    & @CRLF  & @CRLF & _
             "err.description is: " & @TAB & $oMyError.description  & @CRLF & _
             "err.windescription:"   & @TAB & $oMyError.windescription & @CRLF & _
             "err.number is: "       & @TAB & hex($oMyError.number,8)  & @CRLF & _
             "err.lastdllerror is: "   & @TAB & $oMyError.lastdllerror   & @CRLF & _
             "err.scriptline is: "   & @TAB & $oMyError.scriptline   & @CRLF & _
             "err.source is: "       & @TAB & $oMyError.source       & @CRLF & _
             "err.helpfile is: "       & @TAB & $oMyError.helpfile     & @CRLF & _
             "err.helpcontext is: " & @TAB & $oMyError.helpcontext _
            )
Endfunc
Que es lo que he sacado del foro inglés de autoit,

A mi personalmente me funciona, cambié la página y me funciona perfecto, mira este es mi código:

Código: Seleccionar todo

$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET","http://www.autoit.es")
$oHTTP.Send()
$HTMLSource = $oHTTP.Responsetext
ConsoleWrite($HTMLSource)
Si no te funciona ya te digo lo que falla es el objeto, asi que prueba ese primer código a ver que te devuelve y nos cuentas.

Saludos!

Re: Problema con la creación de Objeto

Publicado: 28 May 2012, 08:45
por Ximorro
A mí también me funciona, y estoy en un XP...

La primera vez que lo he ejecutado le ha costado mucho conectarse, quizás esta no es la mejor manera de acceder a una página, a ver si te está dando time out.

Dependiendo de lo que quieras puede ser más interesante usar otros métodos, piensa que aquí estás introduciendo un objeto, que puede estar fallando independientemente del código de AutoIt, o sea, puede que el programa esté perfectamente pero lo que falla es el acceso al objeto (no está bien registrado, no está en tu versión de Windows, etc...)

Por ejemplo si lo que quieres es tomar el código de la página lo puedes hacer más fácilmente con InetGet(), que guarda lo que descargas en un archivo, o con _INetGetSource(), que lee la página en memoria (para este último hace falta incluir la librería INet.au3)