como obtener el CAPTCHA de la pagina web y mostrarlo e un picturebox de windows form en C# ???

Todo lo que no cabe en los demas foros........
Halcon Divino
Mensajes: 164
Registrado: Vie Nov 25, 2011 4:12 pm

como obtener el CAPTCHA de la pagina web y mostrarlo e un picturebox de windows form en C# ???

Mensajepor Halcon Divino » Mar Jul 04, 2017 6:39 pm

Alguien sabe como obtener el CAPTCHA de la pagina web y mostrarlo e un picturebox de windows form en C#

Encontré este ejemplo en VB.net y SI FUNCIONA

Código: Seleccionar todo

            Dim Doc As mshtml.IHTMLDocument2 = CFDISatWBrw.Document.DomDocument
            Dim ImgRng As mshtml.IHTMLControlRange = CType(Doc.body, mshtml.HTMLBody).createControlRange

            For Each Img As mshtml.IHTMLImgElement In Doc.images
                If Img.getAttribute("src").ToString.Contains("../jcaptcha.jpg") Then
                    ImgRng.add(Img)
                    ImgRng.execCommand("Copy", False, Nothing)
                    CaptchaPBox.Image = Clipboard.GetDataObject.GetData(DataFormats.Bitmap)
                End If
            Next Img



Trate de traducirlo a C# y tengo esto

Código: Seleccionar todo

                mshtml.IHTMLDocument2 Doc = (mshtml.IHTMLDocument2) this._wbSat.Document.DomDocument;
                mshtml.IHTMLControlRange ImgRng = (mshtml.IHTMLControlRange)((mshtml.HTMLBody)Doc.body).createControlRange();
                foreach (mshtml.IHTMLImgElement Img in Doc.images)
                {
                        if (((mshtml.IHTMLElement)Img.getAttribute("src")).ToString().Contains("../jcaptcha.jpg"))
                        {
                            ImgRng.add((mshtml.IHTMLControlElement)Img);
                            ImgRng.execCommand("Copy", false, null);
                            this.pictureBox1.Image = (System.Drawing.Image)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
                        }
               }
               
 



El problema es que en esta instrucción marca error dice que el getAttribute NO EXISTE

Código: Seleccionar todo

                        if (((mshtml.IHTMLElement)Img.getAttribute("src")).ToString().Contains("../jcaptcha.jpg"))


Ya busque en google y no encuentro solución al problema. .. de hecho otras personas tienen el mismo problema que yo pero las soluciones que dan no jalan.


ALGUIEN PUDIERA AYUDARME ...
Saludos
Halcón Divino

Monterrey
Nuevo León
México

crono81
Mensajes: 118
Registrado: Lun Dic 16, 2013 6:55 pm

Re: como obtener el CAPTCHA de la pagina web y mostrarlo e un picturebox de windows form en C# ???

Mensajepor crono81 » Mié Jul 05, 2017 10:40 am

No se mucho de VisualBasic ni C#, pero veo que estás haciendo una especie de cast en el if

Código: Seleccionar todo

(mshtml.IHTMLElement)Img

el cual no está en el codigo original, no está afectandote eso?
La solucion que yo tengo en Delphi para este caso es que tengo un cliente http, que no es visual, con éste mando peticiones get y post
hago un get hacia la pagina del sat que muestra el captcha, ya que está cargado en mi cliente, hago un nuevo get hacia la url
del captcha ("../jcaptcha.jpg"), mi cliente tiene la opcion de que el get lo devuleva como string o como un stream, para el primer get
lo hago como un string y el segundo como un stream para almacenarlo en una variable tipo imagen, para despues mostrarla
como la imagen en sí ya visualmente.
Despues de que el usuario captura el texto del captcha, nuevamente hago un get con los parametros de rfc, ciec y captcha y tengo el acceso
al sitio.
el cliente que uso en delphi se llama IdHTTP, de la libreria de componentes INDY
No se, si haya algun tipo de cliente web como el que uso para C#
Saludos


Volver a “Otros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados