DevMedia

Fórum DevMedia

Navegação: Fórum HOME - Sala: Delphi (Win32, Mac, iOS, DataSnap, FireMonkey, FireDac, dbExpress etc)

Tópico: Consultar placa de veiculo no site do Detran

Novo Tópico  Responder
Autor
Mensagem

Consultar placa de veiculo no site do Detran

Rafael Cruz
Rafael Cruz

País: Brasil
Estado: SP
Cidade: Leme
Mensagens: 30
Ícone Post  Postado em:
 
Olá, tenho um cliente Transportador e ele quer que ao cadastrar um veículo novo, somente digite a placa e a partir dela faça uma consulta no site do detran e traga os demais dados preenchidos no form.
Alguém sabe se é possível? Se sim, como proceder.. Obrigado

Consultar placa de veiculo no site do Detran

Marcão
Marcão

País: Brasil
Estado: MG
Cidade: Pará de Minas
Mensagens: 297
Ícone Post  Postado em:
Citar 
Rafael, procurei na internet sobre a sua necessidade, e não encontrei nada.
Até onde eu saiba, o Detran não disponibiliza nenhum WebService para esse tipo de consulta.
Não quero te desanimar, mas acho que isso não é possível.
O que você pode fazer para ter certeza é entrar em contato direto com o Detran.

Att,

Marcos

Consultar placa de veiculo no site do Detran

Joel Rodrigues
Joel RodriguesAdministradorDevMaster
StarStarStarStarStar

País: Brasil
Estado: RN
Cidade: Natal
Mensagens: 4891
Ícone Post  Postado em:
Citar 
Creio que não seja possível, pois até para consultar direto no site do Detran é preciso informar a placa e o renavan. O DETRAN não deve disponibilizar esse tipo de consulta, pois expõe dados sensíveis.
Acho que esse sonho do cliente você não vai poder realizar.

Consultar placa de veiculo no site do Detran

Bretas
BretasDevMaster

País: Brasil
Estado: MT
Cidade: Cuiabá
Mensagens: 288
Ícone Post  Postado em:
Citar 
Depende do que o Detran da região que vc quer consultar disponibiliza pra consulta!

Por exemplo, o Detran aqui de MT, vc consegue consultar alguns dados do veículo usando a url: http://internet.detrannet.mt.gov.br/ConsultaVeiculo.asp?Placa=&NUMPLACA&Renavam=&NUMRENAVAM, que no seu caso para importar os dados, teria que tratar o HTML gerado pra capturar as informações!

Consultar placa de veiculo no site do Detran

Rafael Cruz
Rafael Cruz

País: Brasil
Estado: SP
Cidade: Leme
Mensagens: 30
Ícone Post  Postado em:
Citar 
Esse cliente usa um programa da seguradora dele que faz essa pesquisa.. Certamente não é delphi mas achei que pudesse haver pra delphi tbm..
Enfim, obrigado

Consultar placa de veiculo no site do Detran

Joel Rodrigues
Joel RodriguesAdministradorDevMaster
StarStarStarStarStar

País: Brasil
Estado: RN
Cidade: Natal
Mensagens: 4891
Ícone Post  Postado em:
Citar 
A questão não é nem ser Delphi ou não, mas sim como ele consegue essas informações. Se for de um web service, você pode acessar pelo Delphi, C#, PHP, etc. O "problema" é saber qual é esse serviço que fornece as informações.

Consultar placa de veiculo no site do Detran

Yamazack
YamazackAdministradorDevMaster

País: brasil
Estado: RJ
Cidade: rio de janeiro
Mensagens: 1634
Ícone Post  Postado em:
Citar 
Senhores, há um bom tempo eu fiz algo similar, mas foi meio 'tenso', o que eu fiz (não tenho o código mais pois perdi o HD do note na época).

Usando um Web Browser, eu abria o site do detran pelo programa em Delphi, em um edit, ele digitava a placa do carro, e esta info ia para o Web Browser, dai era só digitar o captcha e eu conseguia pegar os dados do veiculo, mas tudo via Web Browser/HTML.

Infelizmente não tenho o código, só a logica e como eu fiz e tal..

Um abraço

Consultar placa de veiculo no site do Detran

Joel Rodrigues
Joel RodriguesAdministradorDevMaster
StarStarStarStarStar

País: Brasil
Estado: RN
Cidade: Natal
Mensagens: 4891
Ícone Post  Postado em:
Citar 
Tem que ver qual é o DETRAN, pois alguns pedem além da placa, o Renavan, então esse esquema de abrir a página em web browser ou fazer uma requisição e tratar o HTML não funcionaria só com a placa.

Consultar placa de veiculo no site do Detran

Rafael Cruz
Rafael Cruz

País: Brasil
Estado: SP
Cidade: Leme
Mensagens: 30
Ícone Post  Postado em:
Citar 

Citação:
Senhores, há um bom tempo eu fiz algo similar, mas foi meio 'tenso', o que eu fiz (não tenho o código mais pois perdi o HD do note na época).

Usando um Web Browser, eu abria o site do detran pelo programa em Delphi, em um edit, ele digitava a placa do carro, e esta info ia para o Web Browser, dai era só digitar o captcha e eu conseguia pegar os dados do veiculo, mas tudo via Web Browser/HTML.

Infelizmente não tenho o código, só a logica e como eu fiz e tal..

Um abraço


Exatamente isso que eu estou procurando..
Uma pena voce nao ter mais o codigo

Consultar placa de veiculo no site do Detran

Yamazack
YamazackAdministradorDevMaster

País: brasil
Estado: RJ
Cidade: rio de janeiro
Mensagens: 1634
Ícone Post  Postado em:
Citar 
Rafael, achei apenas um backup do .pas que eu havia feito na época, estou desde a hora que comentei aqui buscando isso pra ti, consegui achar, não sei se adianta e tal, mas lá vai :)

#Código
unit uFrmPrincipal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVw, Buttons,
  UrlMon, ShellAPI, WinInet, ActiveX, ComObj, ComCtrls;

type
  TForm2 = class(TForm)
    WebBrowser1: TWebBrowser;
    Panel1: TPanel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    Panel2: TPanel;
    EdtRenavam: TLabeledEdit;
    CbxAno: TComboBox;
    Label1: TLabel;
    BitBtn2: TBitBtn;
    Memo1: TMemo;
    BitBtn3: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    function PreencherForm(WebBrowser: TWebBrowser; FieldName,
      Value: string): Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
  {Personalizar WEBBrownser}
  with WebBrowser1 do
  begin
    OleObject.document.body.Style.scrollbarFaceColor := '#FF6699';
    OleObject.Document.body.Style.scrollbarTrackColor := '#CCCC99';
    OleObject.document.body.Style.scrollbarHighlightColor := '#99FF99';
    OleObject.document.body.Style.scrollbar3DLightColor := '#6699CC';
    OleObject.Document.body.Style.scrollbarShadowColor := '#6600FF';
    OleObject.document.body.Style.scrollbarDarkShadowColor := '#00CC66';
    OleObject.document.body.Style.scrollbarArrowColor := '#336699';
  end;
end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
  EdtRenavam.Text := '77777777';
  PreencherForm(WebBrowser1, 'txtRenavam',EdtRenavam.Text );
  WebBrowser1.Navigate( 'javascript:document.forms["formPrincipal"].submit();' );
end;

procedure TForm2.BitBtn3Click(Sender: TObject);
begin
  WebBrowser1.OleObject.Document.Body.Style.OverflowX := 'hidden';
  WebBrowser1.OleObject.Document.Body.Style.OverflowY := 'hidden';
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate( Edit1.Text);


end;

function TForm2.PreencherForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j, k: Integer;
  Element, SubElement, FormItem: Variant;
  child, child2, child3: TTreeNode;
  root: TTreeNodes;
begin
  Result := False;
  //no form on document
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
  begin
    Exit;
  end;
  //count forms on document
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);

    for j := 0 to FormItem.Length - 1 do
    begin
      try
        //when the fieldname is found, try to fill out
        //Memo1.lines.add(FormItem.Item(j).Name);

        if FormItem.item(J).Type = 'select-one' then
        begin
          FormItem.Item(j).Value := '00';
        end;
        {for k := 0 to FormItem.item(J).Options.Length - 1 do
        begin
          //Memo1.lines.add(FormItem.Item(j).Options.Index[k].Value);
          //FormItem.item(J).Options.Index := 1;
          //FormItem.item[j].Options.selectedIndex := 1;
        end;  }

        if FormItem.Item(j).Name = FieldName then
        begin
          FormItem.Item(j).Value := Value;
          Result := True;
        end;
      except
       // Exit;
      end;
    end;
  end;
end;

end.




Forte abraço e boa sorte!

Consultar placa de veiculo no site do Detran

Rafael Cruz
Rafael Cruz

País: Brasil
Estado: SP
Cidade: Leme
Mensagens: 30
Ícone Post  Postado em:
Citar 
Yamazack, em que versão do Delphi voce fez seu codigo?

Consultar placa de veiculo no site do Detran

Rafael Cruz
Rafael Cruz

País: Brasil
Estado: SP
Cidade: Leme
Mensagens: 30
Ícone Post  Postado em:
Citar 
?

Consultar placa de veiculo no site do Detran

Bretas
BretasDevMaster

País: Brasil
Estado: MT
Cidade: Cuiabá
Mensagens: 288
Ícone Post  Postado em:
Citar 
Rafael, que diferença faz a versão do Delphi? De acordo com a declaração do formulário, só tem componentes nativos do Delphi!

Para desencargo de consciência, eu compilei o código aqui no Delphi XE, não sei se funciona, mas compila!

Consultar placa de veiculo no site do Detran

Rafael Cruz
Rafael Cruz

País: Brasil
Estado: SP
Cidade: Leme
Mensagens: 30
Ícone Post  Postado em:
Citar 
É, já percebi..
Enfim, compilou mas não teve ação nenhuma nos clicks do botão..

Consultar placa de veiculo no site do Detran

Bretas
BretasDevMaster

País: Brasil
Estado: MT
Cidade: Cuiabá
Mensagens: 288
Ícone Post  Postado em:
Citar 
Não teve ação por que o Yamazack não disse o site que ele tratou, acredito que ele tenha postado com intuito didático, o famoso "Caminho das Pedras"...

Consultar placa de veiculo no site do Detran

Joel Rodrigues
Joel RodriguesAdministradorDevMaster
StarStarStarStarStar

País: Brasil
Estado: RN
Cidade: Natal
Mensagens: 4891
Ícone Post  Postado em:
Citar 
Se é de usar um WebBrowser, não seria melhor utilizar um esquema como o que o Bretas citou anteriormente? Fazendo uma requisição e tratando o HTML?

Consultar placa de veiculo no site do Detran

Rafael Cruz
Rafael Cruz

País: Brasil
Estado: SP
Cidade: Leme
Mensagens: 30
Ícone Post  Postado em:
Citar 
É que o de SP não fornece os dados igual o de MT que ele postou..
Achei um site : http://denatran.serpro.gov.br/index2.htm
Estou pesquisando uma rotina pra pegar o html e jogar nos edits...

Consultar placa de veiculo no site do Detran

Yamazack
YamazackAdministradorDevMaster

País: brasil
Estado: RJ
Cidade: rio de janeiro
Mensagens: 1634
Ícone Post  Postado em:
Citar 
Opa Rafael Cruz, o exemplo foi feito com a navegação no site do Detran do RJ, na época que fiz este código eles tinham essa estrutura e tal. o que você tem que se atentar é como eu fiz, e não o link, até pq vc não irá usar o mesmo link que o meu. Como o Bretas disse, foi apenas para fins didáticos, sacou?

vc precisará adaptar de acordo com sua necessidade, no caso, você entendeu o código?

abs