COMO MAXIMIZAR BROWSER E ENVIAR DADOS
Olá bom dia.
Obrigado desde já pela vossa colaboração.
O exemplo aqui postado pelo amigo Fernando , também funda.(Estranho este negócio! hem!!!)
Então vou tentar explicar o que pretendo :
No exemplo acima que o nosso amigo Fernando postou e muito bém , para fazermos ( e corrijam-me se estou enganado) uma busca no código de HTML por: GetElementbyID só devolve o valor do ID e name ; o que origina não funfar para muitos sites, derivado aos valores mudarem constantemente, porque existem uma infinidade de variaveis que se podem definir.
Assim poderemos ir por alguns dados que nos podem dar palavras [Ô]Chave[Ô] que sejam + regulares , como por exemplo nos Elementos : [Ô]type[Ô] e [Ô]name[Ô][txt-color=#0000f0]
- Olhem agora para este código HTML exemploo :[/txt-color]
A única maneira de ir buscar este código e validar no sitio correcto é verificar se na Tag há uma palavra : [Ô]input[Ô] ; que contenha os Elementos [Ô]type[Ô] e [Ô]name[Ô], isto para que se possa fazer uma melhor filtragem.
Quando encontrar um [Ô]input[Ô] ; se existem as palavras [Ô]type[Ô] e também [Ô]name[Ô] que contenham algo especificado pelo programador o programa enviará os dados postados pelo utilizador.
- Fiz assim um aproveitamento do código do colega alterando algumas linhas de código, mas não obtive nhenhum resultado.
Grato desde já pela vosso empenho e determinação em me ajudar.
Um obrigado a todos.
Programadorvb6
Obrigado desde já pela vossa colaboração.
O exemplo aqui postado pelo amigo Fernando , também funda.(Estranho este negócio! hem!!!)
Então vou tentar explicar o que pretendo :
No exemplo acima que o nosso amigo Fernando postou e muito bém , para fazermos ( e corrijam-me se estou enganado) uma busca no código de HTML por: GetElementbyID só devolve o valor do ID e name ; o que origina não funfar para muitos sites, derivado aos valores mudarem constantemente, porque existem uma infinidade de variaveis que se podem definir.
Assim poderemos ir por alguns dados que nos podem dar palavras [Ô]Chave[Ô] que sejam + regulares , como por exemplo nos Elementos : [Ô]type[Ô] e [Ô]name[Ô][txt-color=#0000f0]
- Olhem agora para este código HTML exemploo :[/txt-color]
A única maneira de ir buscar este código e validar no sitio correcto é verificar se na Tag há uma palavra : [Ô]input[Ô] ; que contenha os Elementos [Ô]type[Ô] e [Ô]name[Ô], isto para que se possa fazer uma melhor filtragem.
Quando encontrar um [Ô]input[Ô] ; se existem as palavras [Ô]type[Ô] e também [Ô]name[Ô] que contenham algo especificado pelo programador o programa enviará os dados postados pelo utilizador.
- Fiz assim um aproveitamento do código do colega alterando algumas linhas de código, mas não obtive nhenhum resultado.
Imports System.Web
Imports System.IO
Imports System.Threading.Thread
Public Class Form1
Dim browser As SHDocVw.InternetExplorer
Dim myDoc As mshtml.IHTMLDocument3
Dim shellWindows As SHDocVw.ShellWindows = New SHDocVw.ShellWindows()
Dim filename As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Process.Start([Ô]https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dpt_BR%26next%3Dhttp%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253D6_VmojhxfP8&hl=pt_BR<mpl=sso[Ô])
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim myprocesses As Process()
myprocesses = Process.GetProcessesByName([Ô]iexplore[Ô])
If myprocesses.Length > 0 Then
Teste()
End If
End Sub
Private Sub Teste()
TENTERNOVAMENTE:
Try
For Each ie As SHDocVw.InternetExplorer In shellWindows
[ô]Dim Elementos As HtmlElementCollection = myDoc.getElementsByTagName([Ô]input[Ô])
Dim controlName As String = myDoc.getElementById([Ô]input[Ô]).getAttribute([Ô]type[Ô]).ToString
Dim VariavelUser As String = myDoc.getElementById([Ô]input[Ô]).getAttribute([Ô]name[Ô]).ToString
If ie.ReadyState <> SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE Then
GoTo TENTERNOVAMENTE
End If
filename = System.IO.Path.GetFileNameWithoutExtension(ie.FullName)
If filename = [Ô]iexplore[Ô] Then
browser = ie
myDoc = browser.Document
If myDoc.url = [Ô]https://www.google.com/accounts/ServiceLogin?uilel=3&service=youtube&passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dpt_BR%26next%3Dhttp%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253D6_VmojhxfP8&hl=pt_BR<mpl=sso[Ô] Then
If controlName = [Ô]text[Ô] AndAlso VariavelUser.Contains([Ô]user[Ô]) Then
myDoc.getElementById([Ô]Email[Ô]).innerText = TextBox1.Text
ElseIf controlName = [Ô]text[Ô] AndAlso VariavelUser.Contains([Ô]Usuario[Ô]) Then
myDoc.getElementById([Ô]Email[Ô]).innerText = TextBox1.Text
ElseIf controlName = [Ô]text[Ô] AndAlso VariavelUser.Contains([Ô]mail[Ô]) Then
myDoc.getElementById([Ô]Email[Ô]).innerText = TextBox1.Text
[ô]//========================================================
ElseIf controlName.Contains([Ô]pass[Ô]) Then
myDoc.getElementById([Ô]input[Ô]).setAttribute([Ô]value[Ô], TextBox2.Text)
ElseIf controlName.Contains([Ô]pass[Ô]) AndAlso VariavelUser.Contains([Ô]Senha[Ô]) Then
myDoc.getElementById([Ô]input[Ô]).setAttribute([Ô]value[Ô], TextBox1.Text)
Timer1.Stop()
End If
End If
End If
Next
Catch ex As Exception
End Try
End Sub
Grato desde já pela vosso empenho e determinação em me ajudar.
Um obrigado a todos.
Programadorvb6
voce quer preeencher alguma coisa passa o site que voce quer preencher tipo digita no form e passar para o o ie se for isso me passa o site ai....
Olá Amigo.
O site pode ser um qualquer , pode ser este do VBMania.
O site pode ser um qualquer , pode ser este do VBMania.
o duro de se fazer isso no vbmania é que o nome do Form que enviar os dados dos campos muda a cada vez que se atualiza a pagina, senao era só mandar ele executar o POST desse formulario...
Pessoal tentei desta maneira e também não deu, isto tá enguiçado.. e é estranho...
Talvez haja alguém que me possa dar uma dica.
Grato deste já pela vossa ajuda.
Atentamente.
Programadorvb6
Talvez haja alguém que me possa dar uma dica.
Imports SHDocVw
Imports System.Web
Imports System.IO
Imports System.Threading.Thread
Public Class Form1
Dim browser As SHDocVw.InternetExplorer
Dim myDoc As mshtml.IHTMLDocument3
Dim shellWindows As New SHDocVw.ShellWindows
Dim filename As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Process.Start([Ô]http://www.vbmania.com.br/pages/index.php?varModulo=Login[Ô])
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim myprocesses As Process()
myprocesses = Process.GetProcessesByName([Ô]iexplore[Ô])
If myprocesses.Length > 0 Then
Teste()
End If
End Sub
Private Sub Teste()
TENTERNOVAMENTE:
Try
For Each ie As SHDocVw.InternetExplorer In shellWindows
If ie.ReadyState <> SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE Then
GoTo TENTERNOVAMENTE
End If
filename = System.IO.Path.GetFileNameWithoutExtension(ie.FullName)
If filename = [Ô]iexplore[Ô] Then
browser.Navigate([Ô]http://www.vbmania.com.br/pages/index.php?varModulo=Login[Ô])
myDoc = browser.Document
If myDoc.documentElement.getAttribute([Ô]type[Ô]).ToString.Contains([Ô]text[Ô]) Then
[ô]insere se só contem text
myDoc.documentElement.setAttribute([Ô]value[Ô], TextBox1.Text)
End If
If myDoc.documentElement.getAttribute([Ô]type[Ô]).ToString.Contains([Ô]text[Ô]) AndAlso myDoc.documentElement.getAttribute([Ô]name[Ô]).ToString.Contains([Ô]user[Ô]) Then
[ô]Insere se há user
myDoc.documentElement.setAttribute([Ô]value[Ô], TextBox1.Text)
End If
If myDoc.documentElement.getAttribute([Ô]type[Ô]).ToString.Contains([Ô]text[Ô]) AndAlso myDoc.documentElement.getAttribute([Ô]name[Ô]).ToString.Contains([Ô]Usuario[Ô]) Then
[ô]Insere se há uSUARIO
myDoc.documentElement.setAttribute([Ô]value[Ô], TextBox1.Text)
End If
If myDoc.documentElement.getAttribute([Ô]type[Ô]).ToString.Contains([Ô]text[Ô]) AndAlso myDoc.documentElement.getAttribute([Ô]name[Ô]).ToString.Contains([Ô]mail[Ô]) Then
[ô]Insere se há Mail
myDoc.documentElement.setAttribute([Ô]value[Ô], TextBox1.Text)
End If
[ô]//=========== Enviar Pass ==============
If myDoc.documentElement.getAttribute([Ô]type[Ô]).ToString.Contains([Ô]pass[Ô]) Then
[ô]insere se só contem text
myDoc.documentElement.setAttribute([Ô]value[Ô], TextBox2.Text)
End If
If myDoc.documentElement.getAttribute([Ô]type[Ô]).ToString.Contains([Ô]pass[Ô]) AndAlso myDoc.documentElement.getAttribute([Ô]name[Ô]).ToString.Contains([Ô]senha[Ô]) Then
[ô]Insere se há senha
myDoc.documentElement.setAttribute([Ô]value[Ô], TextBox2.Text)
End If
[ô]myDoc.getElementById([Ô]Passwd[Ô]).innerText = TextBox2.Text
[ô]myDoc.getElementById([Ô]signIn[Ô]).click()
Timer1.Stop()
End If
Next
Catch ex As Exception
End Try
End Sub
End Class
Grato deste já pela vossa ajuda.
Atentamente.
Programadorvb6
Olá Galera + uma vez !
Apoós varias tentativas, consegui finalmente introduzir uma das coisas que queria.
Mas ao executar o envio várias vezes mostra-me este erro (Que é sinal se sobrecarga)
Tentei resolver da maneira que está neste exemplo e não consegui.
Alguém conhece algum método para contornar este problema?
Erro : [txt-color=#0000f0] A chamada de procedimento remoto falhou. (Excepção de HRESULT: 0x800706BE) [/txt-color]
Alguém se se deparou com isto?
Qual a solução que encontrou?
Grato desde já pela vossa paciência e atenção.
Atentamente.
Programadorvb6
Apoós varias tentativas, consegui finalmente introduzir uma das coisas que queria.
Mas ao executar o envio várias vezes mostra-me este erro (Que é sinal se sobrecarga)
Tentei resolver da maneira que está neste exemplo e não consegui.
Alguém conhece algum método para contornar este problema?
Erro : [txt-color=#0000f0] A chamada de procedimento remoto falhou. (Excepção de HRESULT: 0x800706BE) [/txt-color]
Alguém se se deparou com isto?
Qual a solução que encontrou?
Grato desde já pela vossa paciência e atenção.
Atentamente.
Programadorvb6
Tópico encerrado , respostas não são mais permitidas