COMO CAPTURAR UM RECORTE DA PAGINA WEB
Na página da Web, aparece um captcha que eu quero recortar e colocar no meu form em um picturebox.
Eu acho que preciso primeiro fazer um retangulo:
Dim MarcarCaptcha as New Rectangle(New Point(800,60), new size (200,50))
Mas qual comando que eu uso para recortar oque eu selecionei?
Eu acho que preciso primeiro fazer um retangulo:
Dim MarcarCaptcha as New Rectangle(New Point(800,60), new size (200,50))
Mas qual comando que eu uso para recortar oque eu selecionei?
Não é por aà não amigo. O que vc deve fazer é analizar o código HTML, ver onde está a figura, baixar e aà sim colocar em uma picturebox. Fazer um [Ô]recorte[Ô] pode dar muito errado, pois pode recortar a parte errada...
Assim?
Dim captchanfe As HtmlElement = WebBrowser1.Document.GetElementById([Ô]ContentPlaceHolder1_lblCaptcha[Ô])
Sabendo que aquele campo, [Ô]pode ser a imagem[Ô], como converto para colocar no picturebox?
Picturebox1.Image = captchanfe -> dá erro
Ah a página que estou querendo capturar o captcha é esa:
https://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=
Dim captchanfe As HtmlElement = WebBrowser1.Document.GetElementById([Ô]ContentPlaceHolder1_lblCaptcha[Ô])
Sabendo que aquele campo, [Ô]pode ser a imagem[Ô], como converto para colocar no picturebox?
Picturebox1.Image = captchanfe -> dá erro
Ah a página que estou querendo capturar o captcha é esa:
https://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=
O endereço do gerador captcha é: https://www.nfe.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image
O problema é que vc não vai conseguir fazer o que vc quer porque cada vez que acessar o captcha, vai ser diferente...
O problema é que vc não vai conseguir fazer o que vc quer porque cada vez que acessar o captcha, vai ser diferente...
resolvido com dicas do ALTAIR148 e mais uns códigos que achei pela net.
coloquei asism no evento Load do Form
com isso abri a página que eu queria
WebBrowser1.Visible = False
WebBrowser1.Navigate([Ô]http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=[Ô])
depois no evento do DocumentCompleted do WebBrowse, coloquei assim:
WebBrowser1.Visible = True
WebBrowser1.Document.Window.ScrollTo(70, 335)
Assim, mostra para mim exatamente o que eu preciso, [Ô]o captcha[Ô]. Nem precisei recortar ele, pois só mostrando ele pro usuário, já vai bastar
Mas se precisar recortar e colar em outro form é só fazer assim:
Private Sub btnCapture_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapture.Click
[ô] Obter a imagem.
Dim bm As Bitmap = GetFormImage(True)
[ô] Exibir a imagem em um novo formulário.
Dim frm As New frmShowCapture
frm.picCapturedImage.Image = bm
Dim wid As Integer = bm.Width + 2 * frm.picCapturedImage.Left
Dim hgt As Integer = bm.Height + 2 * frm.picCapturedImage.Top
frm.ClientSize = New Size(wid,hgt)
frm.ShowDialog()
End Sub
Private Function GetFormImage(ByVal include_borders As Boolean) As Bitmap
Dim wid As Integer = Me.Width
Dim hgt As Integer = Me.Height
Dim bm As New Bitmap(wid, hgt)
WebBrowser1.DrawToBitmap(bm, New Rectangle(0, 0, wid, hgt))
Return bm
End Function
coloquei asism no evento Load do Form
com isso abri a página que eu queria
WebBrowser1.Visible = False
WebBrowser1.Navigate([Ô]http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=[Ô])
depois no evento do DocumentCompleted do WebBrowse, coloquei assim:
WebBrowser1.Visible = True
WebBrowser1.Document.Window.ScrollTo(70, 335)
Assim, mostra para mim exatamente o que eu preciso, [Ô]o captcha[Ô]. Nem precisei recortar ele, pois só mostrando ele pro usuário, já vai bastar
Mas se precisar recortar e colar em outro form é só fazer assim:
Private Sub btnCapture_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapture.Click
[ô] Obter a imagem.
Dim bm As Bitmap = GetFormImage(True)
[ô] Exibir a imagem em um novo formulário.
Dim frm As New frmShowCapture
frm.picCapturedImage.Image = bm
Dim wid As Integer = bm.Width + 2 * frm.picCapturedImage.Left
Dim hgt As Integer = bm.Height + 2 * frm.picCapturedImage.Top
frm.ClientSize = New Size(wid,hgt)
frm.ShowDialog()
End Sub
Private Function GetFormImage(ByVal include_borders As Boolean) As Bitmap
Dim wid As Integer = Me.Width
Dim hgt As Integer = Me.Height
Dim bm As New Bitmap(wid, hgt)
WebBrowser1.DrawToBitmap(bm, New Rectangle(0, 0, wid, hgt))
Return bm
End Function
Tópico encerrado , respostas não são mais permitidas