Ir para conteúdo
  • Cadastre-se

dev botao

ACBrPAF Geranda md5 da dll DarumaFrameWork (0000000000000000


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

Recommended Posts

with fsH.ACBrPAF1.PAF_N do

    begin

    RegistroN1.RAZAOSOCIAL := fsH.ACBrAAC1.IdentPAF.Empresa.RazaoSocial;

    RegistroN1.UF          := fsH.ACBrAAC1.IdentPAF.Empresa.Uf;

    RegistroN1.CNPJ        := fsH.ACBrAAC1.IdentPAF.Empresa.CNPJ;

    RegistroN1.IE          := fsH.ACBrAAC1.IdentPAF.Empresa.IE;

    RegistroN1.IM          := fsH.ACBrAAC1.IdentPAF.Empresa.IM;

    RegistroN2.NOME        := fsH.ACBrAAC1.IdentPAF.Paf.Nome;

    RegistroN2.VERSAO      := fsH.ACBrAAC1.IdentPAF.Paf.Versao;

    RegistroN2.LAUDO       := fsH.ACBrAAC1.IdentPAF.NumeroLaudo;

    end;

  with fsH.ACBrAAC1.IdentPAF.ArquivoListaAutenticados do

    begin

    Nome := 'ListaMD5.txt';

    MD5  := fsH.ACBrEAD1.MD5FromFile('c:\infobrasil\infopdv\exec\listamd5.txt');

    end;

  fsH.ACBrPAF1.Path :='C:\INFOBRASIL\INFOPDV\EXEC\';

  fsH.ACBrPAF1.SaveFileTXT_N('PAF_LISTAMD5.TXT');

  fsH.ACBrAAC1.SalvarArquivo;

pq as dlls de impressora fiscal que tem mais 13 letras gera o md5 ( todo com 0 ). notei que gera exception.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Não entendi.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não há problema algum com nomes longos...

Veja a saida abaixo do Exemplo do ACBrEAD

Calculando o HASH - "md5" do arquivo: C:\Pascal\Lazarus\djpdv\DLLsECF\DarumaFrameWork.dll

MD5 = 4191D5B77B189BFE430A7FDFCB44CB0D

------------------------------

Calculando o HASH - "md5" do arquivo: C:\Pascal\Lazarus\djpdv\DLLsECF\BemaMFD2_MP4000THFI.dll

MD5 = 45F66DE58FDE725846B4204AE9A1B361

------------------------------

O que acho que está ocorrendo, é que a DLL está sendo carregada de forma estática pelo seu programa... e com isso, ela ficará indisponível para leitura...

Solução NAO faça carga estática das DLLs do ECF, o ACBrECF já faz a carga dinâmica e apenas dos métodos que ele utiliza

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

NÃO ESTOU CARREGANDO NENHUMA DLL PELO SISTEMA. SERÁ QUE PODE SER AS CHAVE PRIVADA/PUBLICA

ESTOU SOMENTE COM ESSE PROBLEMA NA AQUI NA POLING.

OBRIGADO

na procedure abaixo, passei na chave 6 letras, será q tem que ser 4.

procedure TfsH.ACBrAAC1GetChave(var Chave: String); <- AQUI EU PASSEI UMA CHAVE COM 6 LETRAS.

no O eECFc está validando beleza a chave

DEIXA EU TE PASSA O MEU CÓDIGO:

function TfPrincipal.GeraMD5: string;

var

Arquivo : TextFile;

NomeArq, ArqTexto, aMD5: string;

F : TSearchRec;

Ret : Integer;

begin

Result := '';

try

// Apaga arquivo anterior

ArqTexto := 'Listamd5.txt';

if FileExists(ArqTexto) then

DeleteFile(ArqTexto);

// cria o arquivo TXT na mesma pasta do sistema

AssignFile(Arquivo, ArqTexto);

ReWrite(Arquivo);

// lista todos os arquivo exe da pasta do aplicativo e gera o MF5

Ret := FindFirst(ExtractFilePath(Application.ExeName)+'\*.exe', faAnyFile, F);

try

while Ret=0 do

begin

if F.Attr and faDirectory<>faDirectory then

begin

NomeArq := ExtractFilePath(Application.ExeName)+F.Name;

aMD5 := MD5Print(MD5File(NomeArq));

WriteLn(Arquivo, NomeArq+' - '+aMD5);

end;

Ret := FindNext(F);

end; //verificar com homologador

Ret := FindFirst(ExtractFilePath(Application.ExeName)+'\*.dll', faAnyFile, F);

while Ret=0 do

begin

if F.Attr and faDirectory<>faDirectory then

begin

if (UpperCase(F.Name)= uppercase('DarumaFrameWork.dll')) or

(UpperCase(F.Name)= uppercase('LeituraMFDBin.dll')) or

(UpperCase(F.Name)= uppercase('lebin.dll')) or

(UpperCase(F.Name)= uppercase('BemaFI32.dll')) or

(UpperCase(F.Name)= uppercase('Bematech.dll')) or

(UpperCase(F.Name)= uppercase('BemaMFD2.dll')) or

(UpperCase(F.Name)= uppercase('BemaMFD.dll')) or

(UpperCase(F.Name)= uppercase('elgin.dll')) or

(UpperCase(F.Name)= uppercase('InterfaceEpson.dll')) or

(UpperCase(F.Name)= uppercase('CONVECF.dll')) or

(UpperCase(F.Name)= uppercase('DLLG2.dll')) or

(UpperCase(F.Name)= uppercase('sign_bema.dll')) or

(UpperCase(F.Name)= uppercase('MSJET35.dll')) then

begin

NomeArq := ExtractFilePath(Application.ExeName)+F.Name;

aMD5 := MD5Print(MD5File(NomeArq));

WriteLn(Arquivo, NomeArq+' - '+aMD5);

end;

end;

Ret := FindNext(F);

end;

finally

FindClose(F);

end;

Closefile(Arquivo);

// gera MD5 do arquivo texto

finally

cMD5txt := MD5Print(MD5File(ArqTexto));

end;

end;

procedure TfPrincipal.ChamaMD5;

var

F : TSearchRec;

Ret : Integer;

begin

GeraMD5;

with fsH.ACBrAAC1.IdentPAF.OutrosArquivos.New do

begin

Nome := 'c:\infobrasil\infopdv\exec\infopdv.exe';

MD5 := MD5Print(MD5File(Nome));

end;

Ret := FindFirst(ExtractFilePath(Application.ExeName)+'\*.dll', faAnyFile, F);

while Ret=0 do

begin

if F.Attr and faDirectory<>faDirectory then

begin

if (UpperCase(F.Name)= uppercase('lebin.dll')) or

(UpperCase(F.Name)= uppercase('LeituraMFDBin.dll')) or

(UpperCase(F.Name)= uppercase('DarumaFrameWork.dll')) or

(UpperCase(F.Name)= uppercase('BemaFI32.dll')) or

(UpperCase(F.Name)= uppercase('Bematech.dll')) or

(UpperCase(F.Name)= uppercase('BemaMFD2.dll')) or

(UpperCase(F.Name)= uppercase('BemaMFD.dll')) or

(UpperCase(F.Name)= uppercase('elgin.dll')) or

(UpperCase(F.Name)= uppercase('InterfaceEpson.dll')) or

(UpperCase(F.Name)= uppercase('CONVECF.dll')) or

(UpperCase(F.Name)= uppercase('DLLG2.dll')) or

(UpperCase(F.Name)= uppercase('sign_bema.dll')) or

(UpperCase(F.Name)= uppercase('MSJET35.dll')) then

begin

with fsH.ACBrAAC1.IdentPAF.OutrosArquivos.New do

begin

Nome := ExtractFilePath(Application.ExeName)+F.Name;

end;

end;

end;

Ret := FindNext(F);

end;

with fsH.ACBrPAF1.PAF_N do

begin

RegistroN1.RAZAOSOCIAL := fsH.ACBrAAC1.IdentPAF.Empresa.RazaoSocial;

RegistroN1.UF := fsH.ACBrAAC1.IdentPAF.Empresa.Uf;

RegistroN1.CNPJ := fsH.ACBrAAC1.IdentPAF.Empresa.CNPJ;

RegistroN1.IE := fsH.ACBrAAC1.IdentPAF.Empresa.IE;

RegistroN1.IM := fsH.ACBrAAC1.IdentPAF.Empresa.IM;

RegistroN2.NOME := fsH.ACBrAAC1.IdentPAF.Paf.Nome;

RegistroN2.VERSAO := fsH.ACBrAAC1.IdentPAF.Paf.Versao;

RegistroN2.LAUDO := fsH.ACBrAAC1.IdentPAF.NumeroLaudo;

end;

with fsH.ACBrAAC1.IdentPAF.ArquivoListaAutenticados do

begin

Nome := 'ListaMD5.txt';

MD5 := fsH.ACBrEAD1.MD5FromFile('c:\infobrasil\infopdv\exec\listamd5.txt');

end;

fsH.ACBrPAF1.Path :='C:\INFOBRASIL\INFOPDV\EXEC\';

fsH.ACBrPAF1.SaveFileTXT_N('PAF_LISTAMD5.TXT');

fsH.ACBrAAC1.SalvarArquivo;

Link para o comentário
Compartilhar em outros sites

  • Fundadores

As chaves não tem apenas 6 letras... gere um par de chaves Publica e Privada usando o Demo do ACBrEAD

O problema das chaves de maneira alguma irá interferir na carga de DLLs

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.