Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3247 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Olá a todos,

Estou querendo fazer um procedimento na saída do aplicativo, onde o aplicativo checa a validade do certificado da máquina e avisa se o mesmo estiver para expirar em até 30 dias.

Até aí tudo bem, estou usando a função ACBrNFe1.SSL.CertDataVenc, mas a questão é que salvo o serial do certificado em minha base.

Nas máquinas que possuem certificado funciona corretamente, mas nas outras que não o possuem, o aplicativo gera uma exceção devido o certificado ser inexistente no micro em questão.

Portanto gostaria de saber se existe alguma função no aplicativo que checa a existência do certificado no micro?

Desde já agradeço a atenção

  • 1 mês depois ...
  • Membros Pro
Postado

Olá a todos...

Estou voltando nesse tópico só para ver se alguém consegue dar um exemplo mais "elegante" sobre o que eu fiz. Segue meu código:

try
    CarregaParametrosNFCe;
    if DaysBetween(ACBrNFe1.SSL.CertDataVenc, DataServidor) <= 30 Then
      messageBox(handle,Pchar('Seu certificado digital irá expirar em ' + FormatDateTime('dd-mm-yyyy', ACBrNFe1.SSL.CertDataVenc)),'ATENÇÃO!',MB_ICONERROR+mb_OK);
  except
   //Sou obrigado a ter em branco pois o Delphi não aceita omitir o except
  end;

//Demais código que tenho que executar no Close do Aplicativo
...
...
...

Esse código ocorre no evento FormClose do Form principal... a primeira coisa que ele faz é checar a validade do certificado. Depois informa outros alertas e executa outros códigos. 

A grande questão é que nem todas as máquinas emitem NFCe e portanto nem todas possuem o Certificado Digital instalado, daí a necessidade desse try inicial, pois nessas máquinas ao tentar executar o código de checagem da validade do certificado irá surgir uma exceção e os "Demais códigos" não seriam executados, além do aplicativo não fechar.

Mas como repararam o except fica em branco, pois não preciso que aconteça nada em caso de exceção, só que o delphi continue a rodar os "Demais códigos". Existe uma forma de melhorar isso??? 

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.