DevMedia

Consultar placa de veiculo no site do Detran

0
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
Publicidade

Respostas (22)

0
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
0
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.
0
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!
0
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
0
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.
0
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
0
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.
0

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
0
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!
0
Yamazack, em que versão do Delphi voce fez seu codigo?
0
?
0
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!
-1
É, já percebi..
Enfim, compilou mas não teve ação nenhuma nos clicks do botão..
1
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"...
0
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?
0
É 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...
0
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
1
Quais informacoes voce precisa
eu fiz uma dll que pega dados do site SINESP CIDADAO
la tem a placa , marca/modelo do automovel , ano, situacao (roubado ou sem restricao) e os 4 ultimos digitos do CHASSI do auotomovel
tenho altos conhecimentos em desenvolvimentos de Robos , assim como quebra de captcha

Abracos
1
Sim é possível! Trabalhei na Companhia de Trânsito da minha cidade por alguns anos e deixei o cargo no fim do ano passado.

Um dos sistemas desenvolvidos por mim, tem essa opção e para poder implementar é preciso o manual de layouts do DETRAN, e ele é nacional. Se conseguir esse manual pode-se fazer muitas aplicações que utilizem recursos do DETRAN.

Sei que a intenção desse fórum e trocar informações e conhecimentos entre seus usuários, afim de ajudar uns aos outros, mas antes de alguém perguntar já deixo a resposta; Infelizmente não posso passar informações sobre os layouts.
0
Olá Rafael, poderia disponibilizar o exemplo da dll? Estou tentando fazer a comunicação com o site da SINESP CIDADÃO mas estou com dificuldades. Desde já, grato.
0
Desenvolvi uma aplicacao que pega dados do SINESP CIDADAO
la vem PLACA, ANO, MARCA E MODELO do Veiculo e a situacao se e furtado ou nao. alem do estado e municipio do veiculo..

Se precisar mande um email

rafael.corazzi@hotmail.com
0
Posso sim me manda um email rafael.corazzi@hotmail.com que te mando a DLL ..

abracos