COMO MAXIMIZAR BROWSER E ENVIAR DADOS

PROGRAMADORVB6 01/08/2011 06:29:24
#380477
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.


 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
KURTGU 01/08/2011 15:21:27
#380507
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....
PROGRAMADORVB6 01/08/2011 17:22:20
#380516
Olá Amigo.
O site pode ser um qualquer , pode ser este do VBMania.
FROSTYNHO 01/08/2011 17:31:59
#380517
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...
PROGRAMADORVB6 01/08/2011 21:58:48
#380547
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.

 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
PROGRAMADORVB6 02/08/2011 18:34:45
#380629
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

Página 2 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas