Selecionar Certificado na tela aberta pelo Java

Java

CRUD - Delphi

Certificado Digital

C++

22/04/2020

Estou implementado uma funcionalidade para o sistema acessar automaticamente o site através do Certificado Digital, então preciso selecionar um certificado para realizar o acesso.

Gostaria de saber se já tem alguma funcionalidade que lê a tela que abre listando os Certificados "Segurança do Windows Selecionar um Certificado". Que me permite localizar o que quero pelo CNPJ ou Nome, selecionar ele e confirmar.


Eu desenvolvo em Delphi e C++ no RadStudio. Estou a procura de uma biblioteca que faça esta parte (Selecionar o Certificado).

Eu consigo acessar o site pelo IE no fonte, ler a página, clicar nós link ou botões, mas agora estou precisando selecionar o Certificado quando abre esta tela.
Danrlei

Danrlei

Curtidas 0

Respostas

Danrlei

Danrlei

22/04/2020

SOLUÇÃO: Os certificados são sempre apresentados em ordem de vencimento do maior para o menor. Eu consigo ler quais os certificados estão instalados na máquina usando TElWinCertStorage. Então eu os ordeno da mesma forma e localizo a posição dele. Então quando abre a tela para selecionar, eu clico no certificado certo usando os comandos do teclado.



void __fastcall TfrmNavegador::TimerSelecionarCertificadoTimer(TObject *Sender)
 {
  TimerSelecionarCertificado->Enabled = false;

    Application->ProcessMessages();
    Sleep(1000);
    if(!FindWindowW(NULL, String("Segurança do Windows").c_str()))
     {
      TimerSelecionarCertificado->Enabled = true;
      return;
     }

    setLog("Selecionando certificado.");
    WebBrowser1->Silent = true;
    Application->ProcessMessages();
    Sleep(1000);
    for(int i = 0; i < getPosicaoCertificado(); i++)
     {
      keybd_event(VK_DOWN, 0, 0, 0);
      keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
      Sleep(100);
     }
    keybd_event(VK_RETURN, 0, 0, 0);
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
 }
GOSTEI 0
POSTAR