sambomb Posted February 23, 2018 Report Share Posted February 23, 2018 Boa tarde a todos. Estou com um problema muito difícil de identificar. A aplicação em alguns clientes windows 10, no momento de obter a lista de certificados digitais presentes na máquina exibe a mensagem que o aplicativo parou de funcionar. O erro é esporádico, não ocorre todas as vezes. Já validei antivirus, warsaw, gas, DEP do windows, permissão de administrador. Reinstalei toda a cadeia de certificados. O erro ocorre 1 ou 2 vezes por dia. Quote Link to comment Share on other sites More sharing options...
sistem Posted February 24, 2018 Report Share Posted February 24, 2018 O Windows 10 esta atualizado? veja isto: Execute MSCONFIG. Clique na guia Serviços. Clique na opção Ocultar todos os serviços Microsoft, em seguida clique no botão Desativar tudo. Clique na guia Inicialização de Programas, Abrir Gerenciador de tarefas e desabilite todos os programas que estão iniciando junto com o Windows. Feche a janela de Gerenciador de Tarefas. Na janela de Configurações de Sistema clique em OK, será solicitado o reinicio do computador confirme a solicitação clicando em Reiniciar. Veja se resolve. caso resolva.... você inicializa os serviços que foram desativados e testando até saber qual serviço causa o problema.... se não for isto Veja também: https://answers.microsoft.com/pt-br/windows/forum/windows_10-update-winpc/certificado-digitais-pararam-de-funcionar/421ac8b1-1c04-4140-b10e-07cef6051c83 Quote Link to comment Share on other sites More sharing options...
sambomb Posted February 26, 2018 Author Report Share Posted February 26, 2018 Obrigado pela resposta. Acredito que o problema que está se referindo é um pouco diferente do meu, o erro no meu caso é esporádico, não cessou totalmente de funcionar o certificado. Algumas vezes ao dia, a abertura do certificado causa o problema de "sistema parou de funcionar". Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 26, 2018 Report Share Posted February 26, 2018 Quem diz: "sistema parou de funcionar"? Quote Link to comment Share on other sites More sharing options...
sambomb Posted February 26, 2018 Author Report Share Posted February 26, 2018 Windows, postei um print, não apareceu ae no post não? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 26, 2018 Report Share Posted February 26, 2018 Não, poste imagens aqui: https://uploaddeimagens.com.br Ou aqui: http://imgur.com Crie uma conta. Abs. Quote Link to comment Share on other sites More sharing options...
sambomb Posted February 26, 2018 Author Report Share Posted February 26, 2018 https://uploaddeimagens.com.br/imagens/paroudefuncionar-png Print do erro. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 26, 2018 Report Share Posted February 26, 2018 Com você está fazendo a chamada? Tem WHILE... ENDDO? Já tentou com um MSGRUN(...) Sem ver o código, fica dificil. Talvez, falte um HB_GCALL( .F. ) ou um SYSREFRESH() no local. Tem algo errado na função ou a máquina tem pouca memórai. Em rWindows 10 de 64 Bits, o minimo é: 8 GBs de RAM ou mais.... Abs. Quote Link to comment Share on other sites More sharing options...
sambomb Posted February 26, 2018 Author Report Share Posted February 26, 2018 Com você está fazendo a chamada? Tem WHILE... ENDDO? Já tentou com um MSGRUN(...) Sem ver o código, fica dificil. Talvez, falte um HB_GCALL( .F. ) ou um SYSREFRESH() no local. Tem algo errado na função ou a máquina tem pouca memórai. Em rWindows 10 de 64 Bits, o minimo é: 8 GBs de RAM ou mais.... Abs. do while .t. nTentativas++ nRet := ::oNFEUtil:PegaNomeCertificado( @Nome, @Mensagem )//<<<-- Erro acontece nessa linha if nRet <> 5402 if nTentativas >= 3 if pubLog; LogEvents( "PegaCertificado(): esgotadas as 3 tentativas para selecionar." ); end ::GeraLog( Mensagem ) lRet := .f. if ::lMensagem #IFDEF __DOS__ Alert( hb_ansitooem(Mensagem+"-"+ProcName()) ) #ELSE //MsgStop( Mensagem + CRLF + ProcName(), CAPTION_MSG ) MsgStop( Mensagem + CRLF + ProcName() + CRLF + CRLF + "Esgotadas as 3 tentativas para efetuar a selecionar.", CAPTION_MSG ) #ENDIF endif exit else loop endif else ::cCertificado := Nome exit endif enddo Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 26, 2018 Report Share Posted February 26, 2018 Isto funciona perfeito: Acho que a sua VONFEUTIL2G.PRG está desatualizada. Hable con Gilmer Tavares. Method PegaCertificado( Nome ) Class TVoNFeUtil2G local nRet,Mensagem:="",lRet:=.t. Default Nome:=If(!Empty(::cCertificado),::cCertificado,"") Try nRet:=::oNFEUtil:PegaNomeCertificado(@Nome,@Mensagem) CATCH // MODIFICADO EM:16/12/2016 - Joao MsgStop( "Atenção Usuário: " +CRLF+; "Instale um Certfificado Digital Válido Para Poder " +CRLF+; "Usar a Nota Fiscal Eletrônica. Se Você Não Tem um " +CRLF+; "Certificado Digital Válido, Consulte o Seu Contador " +CRLF+; "ou a Sua Certificadora de Certificados Digitais Tipo:" +CRLF+; "Serasa Experian, Certisign, Ar São Paulo, Boa Vista. " +CRLF+; "Pronova, Digital Sign, Etc. Você Que Escolhe... " +CRLF+; "Depois de Adquirir o Seu Certificado Digital, " +CRLF+; "Instale-o, e Entre no Programa da Nota Fiscal e: " +CRLF+; "<Click> no Botão: <Manutenção> Depois no: " +CRLF+; "Botão: <Trocar Certificado Digital da NF-e>. " +CRLF+; "Tecle <Enter> Para Continuar... ", ; "Instale um Certfificado Digital Válido da NF-e. " ) Return(.f.) End Try If nRet!=5402 // Erro ao Selecionar o certificado ::GeraLog(Mensagem) lRet:=.f. if ::lMensagem #IFDEF __DOS__ Alert( hb_ansitooem(Mensagem+"-"+ProcName()) ) #ELSE MsgStop( Mensagem+CRLF+ProcName(),CAPTION_MSG ) #ENDIF Endif Else ::cCertificado:=Nome Endif Return(lRet) Quote Link to comment Share on other sites More sharing options...
mkyx Posted February 26, 2018 Report Share Posted February 26, 2018 Você acessou o ecac da receita federal, para ver se o certificado está funcionando? Se não estiver, o problema é do certificado. E quando acontece isso comigo, eu peço pro pessoal da empresa que vendeu o certificado, pois eles acessam online e verificam o que está acontecendo. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 26, 2018 Report Share Posted February 26, 2018 Eu faria assim, só que não... HB_GCALL( .F. ) do while .t. nTentativas++ nRet := ::oNFEUtil:PegaNomeCertificado( @Nome, @Mensagem ) //<<<-- Erro acontece nessa linha if nRet <> 5402 if nTentativas >= 3 if pubLog; LogEvents( "PegaCertificado(): esgotadas as 3 tentativas para selecionar." ); end ::GeraLog( Mensagem ) lRet := .f. if ::lMensagem #IFDEF __DOS__ Alert( hb_ansitooem(Mensagem+"-"+ProcName()) ) #ELSE //MsgStop( Mensagem + CRLF + ProcName(), CAPTION_MSG ) MsgStop( Mensagem + CRLF + ProcName() + CRLF + CRLF + "Esgotadas as 3 tentativas para efetuar a selecionar.", CAPTION_MSG ) #ENDIF endif exit else SYSREFRESH() loop endif else ::cCertificado := Nome SYSREFRESH() exit endif enddo Quote Link to comment Share on other sites More sharing options...
sambomb Posted February 26, 2018 Author Report Share Posted February 26, 2018 Você acessou o ecac da receita federal, para ver se o certificado está funcionando? Se não estiver, o problema é do certificado. E quando acontece isso comigo, eu peço pro pessoal da empresa que vendeu o certificado, pois eles acessam online e verificam o que está acontecendo. Eu consigo fazer algumas vendas, o erro é esporádico. Acredito que um erro no certificado iria impedir todas as vendas Quote Link to comment Share on other sites More sharing options...
sambomb Posted February 26, 2018 Author Report Share Posted February 26, 2018 Eu faria assim, só que não... HB_GCALL( .F. ) do while .t. nTentativas++ nRet := ::oNFEUtil:PegaNomeCertificado( @Nome, @Mensagem ) //<<<-- Erro acontece nessa linha if nRet <> 5402 if nTentativas >= 3 if pubLog; LogEvents( "PegaCertificado(): esgotadas as 3 tentativas para selecionar." ); end ::GeraLog( Mensagem ) lRet := .f. if ::lMensagem #IFDEF __DOS__ Alert( hb_ansitooem(Mensagem+"-"+ProcName()) ) #ELSE //MsgStop( Mensagem + CRLF + ProcName(), CAPTION_MSG ) MsgStop( Mensagem + CRLF + ProcName() + CRLF + CRLF + "Esgotadas as 3 tentativas para efetuar a selecionar.", CAPTION_MSG ) #ENDIF endif exit else SYSREFRESH() loop endif else ::cCertificado := Nome SYSREFRESH() exit endif enddo Vou tentar Kapiaba, valeu Quote Link to comment Share on other sites More sharing options...
sambomb Posted March 5, 2018 Author Report Share Posted March 5, 2018 Bom dia, fiz o sugerido de chamar o Garbage Colector antes do procedimento e não resolveu, alguém tem outra sugestão? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.