Jump to content

Recommended Posts

Posted (edited)

Preciso qe o webbrowser esteja carregado para que eu possa fazer uma acção mas pelos vistos o vb não está a fazer lá muito bem este ciclo

If WebBrowser1.Url.ToString = TextBox2.Text Then

If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then

WebBrowser1.Navigate(TextBox2.Text)

entrar()

End If

Else

WebBrowser1.Navigate(TextBox2.Text)

End If

Alguém explica-me o q está mal aqui ? é q ele mesmo q a página não esteje completamente carregada ele avança

Ps: Com breakpoint já funciona lol xD alguém sabe o porque ?

Edited by Lukas S.

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Qual ciclo ? Tens duas estruturas condicionais no código. A terceira linha passa o URL que estiver na TextBox2 e manda carregar a página, provavelmente asincronamente e avança logo para a função entrar(). Se meteres um breakpoint na chamada da função entrar() darás tempo para o objecto WebBrowser acabar de carregar a página.

Podes usar a propriedade IsBusy para determinar quando o objecto WebBrowser acabou de carregar a página, mas muito melhor seria responderes ao evento DocumentCompleted.

  • Vote 1
Posted

Obrigado amigo foi isso mesmo que eu fiz ... já que tamos aqui eu tenho vários itens numa listbox e queria q ele repetisse isso até essa lista acabar eu pus assim mas nao deu lá grande coisa

if not ListBox1.SelectedIndex = ListBox1.Items.Count -1 then

repetir a instruçao

End if

Ele neste ciclo nao devia fazer isto até q o selectedindex fosse igual ao items.count-1 ( uma vez que o count começa em um e o selectedindex começa em zero ?)?

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

O que tens aí não é um ciclo; é uma estrutura condicional. Se a expressão que está entre o 'if' e o 'then' fôr verdadeira o 'repetir a instrução' será executado, caso contrário seguirá para bingo...

O que queres é o while ... end while.

Posted (edited)

o While nao funcionou ...

Tentei também este

Dim s as string

for each s in Listbox1.Items

Procedimento()

Next

--------------''-- sem exito-----"-----------

do until Listbox1.Items.Count -1 = 0

Procedimetno (colocando em procedimento ListBox1.Items.Remove(ListBox1.SelectedItem) )

loop

-------------"- sem exito "--------------

Erro apresentado:A lista à qual este enumerador está vinculado foi modificada. Um enumerador só pode ser utilizado se a lista não for alterada.

Código:

Dim myItem As Object

For Each myItem In ListBox1.Items

Procedimento()

Next

Mais alguém ?

Em procedimento tenho isto mais ou menos

ListBox1.SelectedIndex = 0

login()

fix.start()

preciso de fazer isso por cada item

Edited by Lukas S.

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Estás a alterar a propriedade ListBox1.Items ? Se estás tens de voltar ao primeiro índice de cada vez que alterares a Items.

dim index as Integer
while index < Listbox1.Items.Count 
 if VouAlterarAItems then
    Alterar
    index = 0
 else
   index = index + 1
 end if
end while
Posted (edited)

Estás a alterar a propriedade ListBox1.Items ? Se estás tens de voltar ao primeiro índice de cada vez que alterares a Items.

dim index as Integer
while index < Listbox1.Items.Count
 if VouAlterarAItems then
 Alterar
 index = 0
 else
index = index + 1
 end if
end while

Desculpa a ignorancia mas quando meteste ali VoualterarAitems o que querias referir? e quando dizes editar tás a referir ao que ?

e a função alterar o que faz? eu na função procedimento estou a eliminar o primeiro item da listbox1

Edited by Lukas S.

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Aquelas duas palavras são para substituir pelo código real; a VouAlterarAItems seria uma função para indicar se a Items deveria ser alterada de alguma forma e a Alterar faria a alteração (o 'index = 0' depende do que efectivamente estiveres a fazer à Items, pode ser retirado na maioria dos casos). Se estás a usar para qualquer coisa e depois eliminar o primeiro item da Items podes fazer antes assim:

while ListBox1.Items.Count > 0
 ' Poe aqui o código para usar o Items[0]
 ListBox1.Items.RemoveAt(0)
end while 
Posted (edited)

Aquelas duas palavras são para substituir pelo código real; a VouAlterarAItems seria uma função para indicar se a Items deveria ser alterada de alguma forma e a Alterar faria a alteração (o 'index = 0' depende do que efectivamente estiveres a fazer à Items, pode ser retirado na maioria dos casos). Se estás a usar para qualquer coisa e depois eliminar o primeiro item da Items podes fazer antes assim:

while ListBox1.Items.Count > 0
 ' Poe aqui o código para usar o Items[0]
 ListBox1.Items.RemoveAt(0)
end while

Não sei como é possivel mas o teu código limpou-me a lista inteira e só fez com o primeiro da lista

Edited by Lukas S.

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Não sei como é possivel mas o teu código limpou-me a lista inteira e só fez com o primeiro da lista

O meu código é um ciclo que se repete enquanto houver elementos na Items. Dentro dele elimino o primeiro elemento da Items.

Imagina que a Items tem três elementos: 1,2 e 3. Quando o ciclo é executado pela primeira vez o elemento 1 (1º da Items) é eliminado. A Items passa a ter dois elementos: 2 e 3. Na segunda execução elimino o 2 (que é agora o 1º da Items) e fica só o 3 na Items. Na terceira execução elimino o 3 e como o Items já não tem elementos (Items.Count = 0) o ciclo acaba.

Se ainda não percebeste ou não é isto que queres fazer é melhor voltares ao princípio e explicares o que pretendes fazer.

Posted

bsscara vou te explicar mais ou menos o código ... eu tenho q esperar q o webbrowser faça tudo até ao logout e depois sim ele passa para o segundo elemento então eu fiz o seguinte adptando o teu código

While ListBox1.Items.Count > 0

Procedimento()

ListBox1.Items.RemoveAt(0)

ListBox1.Update()

fix.Start()

System.Threading.Thread.Sleep(9000)

End While

O problema é q quando eu faço System.Threading.Thread.Sleep(9000) (que seria o tempo necessario para ele fazer o login num site e sair automaticamente ) ele nao faz o fix.start que é o delay q precisa para carregar a primeira página ( a do login)

vê isto como se fosse no tweet basicamente ele tem q fazer é entrar , tweetar e sair o problema é q eu nao tou a dar tempo pra ele fazer isto mas eu já nem sei como fazer mais

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Queres fazer uma coisa assim mas percorrendo os sites indicados na ListBox1 ? Então a tua ideia é fazer login em cada site, fazer qualquer coisa lá e fazer logout, repetidamente ?

Se é o caso, teres um tempo fixo para isso não vai funcionar. Basta o site estar lento para não funcionar.

Provavelmente terás de usar o evento LocationChanged para detectar a mudança de URL ao passar da página do login para a normal e para a de logout e usar as técnicas da página que indiquei acima para navegar programaticamente dentro delas. Isto é capaz de não funcionar com alguns sites que usem cookies para a navegação.

O mais garantido seria usares um sniffer como o Wireshark para estudares o tráfego entre o teu PC e o site para executar a operação que queres e depois duplicar isso com uma ligação através de socket.

Posted (edited)

na listbox está os users e a senha .... o site é só um ... o q ele faz é entrar com os dados na listbox para o site ... fazendo assim o log in

Eu para saber se o site ta lento ou nao uso a propriedade ReadyState e uso um timer para ver de a cada 3 segundos se a página está complta

Edited by Lukas S.

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.