Enivar dados para um site .

Delphi

28/06/2004

Olá amigos do fórum .


É o seguinte , onde eu trabalho , tem um sistema de gerenciamento de despachante , que é feito em Delphi , mas que infelizmente não tem codigo fonte . Nesse sistema tem um recurso muito interessante , e que eu gostaria de saber como faz . Num determinado fom desse programa , percebi que se tem o seguinte componente : 1 - Edit , 1 - Button e 1 - WebBrowser . Existe na Net um site do governo , pra acesso livre , que tem a seguinte url : www3.fazenda.sp.gov.br/ipva2004 , nele tem um campo texto e um botão , neste campo texto , colocamos o número do renavam do veículo e clicamos no botao para consultar os debitos do mesmo . O que o programa aqui do escritório faz e o seguinte , quando eu digito no Edit o renavam e clico no button , ele abre esse site no WebBrowser , só que com a pesquisa já feita . Isto é , ele pega o numero do renvam que eu digitei no edit 1 e manda pra esse site e já ´clica´ no botão que tem no site , aí a página que aparece com os dados do veículo , já vem no Web Browser .
Agradeço muito a ajuda de vocês !


Valeuuuuuuu !


Tiagojmilam

Tiagojmilam

Curtidas 0

Respostas

Skywalker

Skywalker

28/06/2004

voce tem um renavam valido para que eu possa consultar pelo site?


GOSTEI 0
Tiagojmilam

Tiagojmilam

28/06/2004

Tenho , tente este : 520745507


GOSTEI 0
Tiagojmilam

Tiagojmilam

28/06/2004

Galera , quem descobrir esse ENIGAMA por favor , se puder mandar um exemplo no meu e-mail = tiagojmilam@bol.com.br , ou me explicar passo a passo , pois eu sou daqueles , iniciantes , que não entedem muito bem explicações complexas . :wink:


Agradeço muito , mesmo ...


Obrigado !


GOSTEI 0
Tiagojmilam

Tiagojmilam

28/06/2004

Galera , será que existe componente pra fazer isto ?


É Urgente ...........



Valeuuuuuu.


GOSTEI 0
Mavinet

Mavinet

28/06/2004

Grande TiagoJmilam,

O que vc terá de fazer não é tão simples, mas é fácil.
Basta mapear o site, ou seja saber onde está o botão e o edit. Sabendo as cordenadas desses objetos, basta simular o clique do mouse e teclado passando as coordenadas...

exemplo:

{Simula o evento do teclado, onde $41 é a tecla ASCII correspondente a letra A}
keybd_event($41, $45, KEYEVENTF_EXTENDEDKEY or 0, 0);

{Simula o evento do mouse, onde pt.x e pt.y são as coordenadas do objeto que você quer clicar em cima}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0); // Pressiona
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0); // Solta

Qualquer dúvida entra em contato comigo por email, que estarei te ajudando sempre que possível, ok?

Já eu estou com um problema parecido, que apenas a simulação do mouse e teclado não bastam para resolver o problema. Estarei postando a seguinte mensagem ainda hoje no forum:

Pessoal,

Estou precisando fazer mais de 15.000 cadastros e alterações dos
usuários no site do cliente, só que não tenho mão de obra
pra isso,
então pensei em fazer um ´robozinho´ que pegasse essas
informações
no meu banco de dados e fizesse o cadastro automaticamente. Ou seja
preciso saber, como fazer para pegar esse método do cadastro do
site
e chama-lo a partir da minha aplicação passando os parâmetros
necessários para o cadastro.

Exemplo:
- No evento do botão: criar uma rotina que chame o método de
autenticação da BOL, e abrir a página do meu email já logado.

Já fiz vários testes com o componente Indy, mas não estou
acertando
o alvo. Preciso da ajuda de todos, mesmo que não saiba
completamente
como resolver o problema, qualquer ajuda será bem vinda. 

Obs: não tenho acesso ao servidor do cliente, nem ao código
fonte do
site, apenas acesso o site com meu browser.

Obrigado a todos.


GOSTEI 0
Rômulo Barros

Rômulo Barros

28/06/2004

Uses
ShellApi

Adicione um edit e um botão no seu form:

procedure TForm1.Button1Click(Sender: TObject);
begin
   ShellExecute(Application.Handle, nil, PChar(´http://www3.fazenda.sp.gov.br/ipva2004/Res5.asp?renavam=´+Edit1.Text), nil, nil, SW_SHOWNORMAL);
end;

end.


:arrow: [color=red:109e858640]Basta saber qual é o action do form do site (form method = post name =frmRenavam action = Res5.asp) e o nome do Input type text (renavam), passando assim como parâmetro (?)[/color:109e858640]

:wink: :wink: :wink: :wink:


GOSTEI 0
Zlink

Zlink

28/06/2004

Utilizei o mesmo metódo, agora eu gostaria de saber como pegar o conteudo do retorno do site.

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Application.Handle, nil, PChar(https://consulta.equifax.com.br/c_remota_nova.asp?StrCons=03984794317039487), nil, nil, SW_SHOWNORMAL);
end;

com isto o site da equifax processa esta consulta e retorna uma string assim no brouwse

OmniStr@0032@0131427319472@02345092004@034300831JOSE RICARDO HONORIO FERNANDES

como jogar numa edit, o retorno retornado pelo site (browse)
obs, ele retorna apenas txt, melhor ainda.

Ricardo


GOSTEI 0
Rômulo Barros

Rômulo Barros

28/06/2004

Coloque o componente idHTTP q está na paleta ´Indy Clients´.

Basta colocar:

Edit1.Text := IdHTTP1.Get(´https://consulta.equifax.com.br/c_remota_nova.asp?StrCons=03984794317039487´);



:wink: :wink: :wink: :wink: :wink:


GOSTEI 0
Zlink

Zlink

28/06/2004

Coloquei o componente idHTTP, um edit1.text e um button1.
No onclick do button1 coloqueio o código indicado abaixo:

Edit1.Text := IdHTTP1.Get(´https://consulta.equifax.com.br/c_remota_nova.asp?StrCons=03984794317039487´);

Mais dá o seguinte erro:

Project Consulta.exe raised exception class EIdIOHandlerPropInvalid with message
´IOHandler value is not valid´. Process stopped. Use Step o Run to continue.

Dá para resolver esse erro


GOSTEI 0
Marcosrocha

Marcosrocha

28/06/2004

Mas e se eu tivesse uma página com login e senha??? Como eu faria pra enviar valores pras duas variáveis??? Ou como preencher os campos na página da Web pelo Delphi???


GOSTEI 0
Massuda

Massuda

28/06/2004

Mas e se eu tivesse uma página com login e senha??? Como eu faria pra enviar valores pras duas variáveis??? Ou como preencher os campos na página da Web pelo Delphi???
Experimente dar uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=55935]neste tópico do fórum[/url].


GOSTEI 0
Marcosrocha

Marcosrocha

28/06/2004

Não sei trabalhar com o Indy!!! Qual a rotina exata pra encontrar o campo de Login e Senha, passar os valores e executar a ação do Form??? :cry:


GOSTEI 0
Massuda

Massuda

28/06/2004

...Qual a rotina exata pra encontrar o campo de Login e Senha...
Você precisa analisar o código HTML da página e determinar isso, pois não existe modo fácil de fazer isso programaticamente.
...passar os valores e executar a ação do Form???
Novamente, você precisa analisar o código HTML da página e determinar se o método utilizado para passagem dos dados é GET ou POST; normalmente formulários usam POST.


GOSTEI 0
POSTAR