Ir para conteúdo
  • Cadastre-se

Dfox

Membros
  • Total de ítens

    316
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Dfox postou

  1. procedure TForm1.Button2Click(Sender: TObject); var Store: IStore3; CertsLista, CertsSelecionado: ICertificates2; CertDados: ICertificate; lSigner : ISigner2; SignedCode : ISignedCode; begin Store := CoStore.Create; Store.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_READ_ONLY); CertsLista := Store.Certificates as ICertificates2; CertsSelecionado := CertsLista.Select('Certificado(s) Digital(is) disponível(is)', 'Selecione o Certificado Digital para uso no aplicativo', false); if not (CertsSelecionado.Count = 0) then begin CertDados := IInterface(CertsSelecionado.Item[1]) as ICertificate; SignedCode := CoSignedCode.Create; lSigner := CoSigner.Create; SignedCode.FileName := 'Aplicativo.exe'; lSigner.Certificate := CertDados; SignedCode.Sign(lSigner); SignedCode.TimeStamp('http://timestamp.digicert.com'); end; end;
  2. Bom dia skype Dfox.sistemas [email protected]
  3. Fiz uma Dll para assinar pdf se você tiver interesse chama no pv!
  4. Tendo a dll capicom.dll registra ela com comando regsvr32 capicom.dll No Delphi : acesse, dentro do menu Component, a opção Import Component Na janela que aparece, selecione Import a Type Library e pressione Next para gerar a Unit CAPICOM_TLB.pas inclua no projeto uses CAPICOM_TLB; agora em um botão coloca o seguinte código procedure TForm1.Button1Click(Sender: TObject); var Certificado: ICertificate2; lSigner : ISigner2; SignedCode : ISignedCode; begin {Assina um exe Digitalmente} try Certificado := CoCertificate.Create; SignedCode := CoSignedCode.Create; lSigner := CoSigner.Create; Certificado.Load('Certificado.pfx', 'senhacertificado', CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, CAPICOM_STORE_OPEN_READ_ONLY); SignedCode.FileName := 'Aplicativo.exe'; lSigner.Certificate := Certificado; SignedCode.Sign(lSigner); SignedCode.TimeStamp('http://timestamp.digicert.com'); finally end; end; Obs: Postei aqui porque não achei isso em lugar algum na net e queria deixar registrado!
  5. Com Capicom acho que é possível veja dá até para assinar um .exe https://www.sysadmins.lv/retired-msft-blogs/alejacma/how-to-sign-exe-files-with-an-authenticode-certificate-part-2.aspx
  6. esse componente parece fazer o que você quer https://www.gnostice.com/nl_article.asp?id=268&t=Generating_Digitally_Signed_PDF_Documents_In_Delphi
  7. Essa tag xPag já existe no componente Acbr?
  8. Obrigado achei removi esse linha ACBrCTe1.dacte.PathPDF := edtPathLogs.text; e resolveu!
  9. Boa tarde estou configurando o componente assim e o pdf só salva em pasta camada tmp o que será que pode ser? ACBrCTeDACTeRL1.UsaSeparadorPathPDF := True; ACBrCTeDACTeRL1.PathPDF := ExtractFilePath(ParamStr(0)) + 'PDF\';
  10. Bom dia fiz uma pequena mudança na configuração e enviou normal para o Hotmail veja procedure TfrmACBrNFe.ConfigurarEmail; begin ACBrMail1.Host := edtSmtpHost.Text; ACBrMail1.Port := edtSmtpPort.Text; ACBrMail1.Username := edtSmtpUser.Text; ACBrMail1.Password := edtSmtpPass.Text; ACBrMail1.From := edtSmtpUser.Text; ACBrMail1.SetSSL := False;//cbEmailSSL.Checked; // SSL - Conexao Segura ACBrMail1.SetTLS := cbEmailSSL.Checked; // Auto TLS ACBrMail1.ReadingConfirmation := False; // Pede confirmacao de leitura do email ACBrMail1.UseThread := False; // Aguarda Envio do Email(nao usa thread) ACBrMail1.FromName := 'Projeto ACBr - ACBrNFe'; end; ACBrMail1.SetSSL := False;//cbEmailSSL.Checked; // SSL - Conexao Segura so mudei o SSL para false
  11. Bom dia pode fechar o tópico, não há bug nenhum, eu estava selecionando um certificado errado rsrs esta tudo 100% Resolvido.
  12. Hum isso parece ser um bug do componente, isso será corrigido?
  13. Obrigado por reportar, as configuração estão corretas. eu ia migrar para o AcbrEmail, mais por enquanto vou continuar com minha Unit que esta enviando sem problemas veja como estou fazendo! procedure Tfrmnotafiscal_menu.bt_nfe_emailClick(Sender: TObject); var Para: string; sXML, sPDF, sXMLPDF: string; bservSsl: Boolean; email: TEmail; dests : TStringList; begin try sXML := qrnota.fieldbyname('nfe_xml').AsString; if FileExists(IfExtraiXmlnf(sXML,qrnota)) then begin {frmmodulo.qrconfig.Open;} if edtSmtpHost.Text = '' then begin Application.MessageBox('Favor configurar a conta de email!', 'Erro', mb_ok + mb_iconerror); exit; end; query.Close; query.SQL.Clear; query.SQL.Add('select EMAIL from c000004'); query.SQL.Add('where codigo = ''' + qrnota.fieldbyname('codfilial').AsString + ''''); query.Open; ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromFile(sXML); ACBrNFeDANFEFR1.Site := query.fieldbyname('EMAIL').AsString; // Verifica se é NFE ou NFC-e if ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.modelo = 65 then begin ACBrNFe1.DANFE := ACBrNFeDANFCEFR1; ACBrNFeDANFCEFR1.ACBrNFe := ACBrNFe1; // Linha inserida para corrigir problema de impressao do numero do protocolo na nfe. ACBrNFeDANFCEFR1.Protocolo := ''; ACBrNFe1.DANFE.TipoDANFE := tiNFCe; ACBrNFeDANFCEFR1.FonteTributos := 'IBPT'; //Fonte do cauculo dos impostos ACBrNFeDANFCEFR1.FastFile := ExtractFilePath(ParamStr(0)) + 'Nfe\Report\' + cbDanfeNFCe.Text + '.fr3'; end else if ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.modelo = 55 then begin ACBrNFe1.DANFE := ACBrNFeDANFEFR1; ACBrNFeDANFEFR1.ACBrNFe := ACBrNFe1; // Linha inserida para corrigir problema de impressao do numero do protocolo na nfe. ACBrNFeDANFEFR1.Protocolo := ''; ACBrNFe1.DANFE.TipoDANFE := tiRetrato; ACBrNFeDANFEFR1.FonteTributos := 'IBPT'; //Fonte do cauculo dos impostos ACBrNFeDANFEFR1.FastFile := ExtractFilePath(ParamStr(0)) + 'Nfe\Report\DANFeRetrato.fr3'; end; ACBrNFe1.NotasFiscais.ImprimirPDF; sPDF:= StringReplace(StringReplace(sXML,'Nfe', 'PDF',[]), '.xml', '.pdf',[]); sXMLPDF := sXML + '|'+ sPDF; qrNFE_Cliente.Close; qrNFE_Cliente.sql.clear; qrNFE_Cliente.sql.add('select email from c000007'); qrNFE_Cliente.sql.add('where codigo = ''' + qrnota.fieldbyname('codcliente').AsString + ''''); qrNFE_Cliente.Open; Para := qrNFE_Cliente.fieldbyname('email').AsString; if Para = '' then begin Para := InputBox('Email', 'Email do Cliente', ''); end; if Para = '' then exit; //Screen.Cursor := crAppStart; //Troca o cursor if (frmStatus = nil) then frmStatus := TfrmStatus.Create(Application); frmStatus.lblStatus.Caption := 'Enviando Email, Aguarde...'; frmStatus.Show; frmStatus.BringToFront; Application.ProcessMessages; {if frmmodulo.qrconfig.fieldbyname('email_exige_conexao').asinteger = 1 then bserv := True else bserv := False;} if cbEmailSSL.Checked then bservSsl := True else bservSsl := False; dests := TStringList.Create; dests.Clear; dests.Add(Para); email := TEmail.Create; {Envia o xml e o pdf} if email.EnviarEmail(edtnfe.text, edtSmtpUser.text, edtSmtpPass.text, edtSmtpHost.text, edtSmtpPort.text, edtEmailAssunto.text, '', //'c:\teste.html', bservSsl, true, dests, nil, nil, mmEmailMsg.Lines, sXMLPDF) then begin //Screen.Cursor := crDefault; //Volta o cursor frmStatus.Hide; Application.MessageBox('Email enviado com sucesso!', 'Aviso', mb_ok + MB_ICONINFORMATION); end else begin //Screen.Cursor := crDefault; //Volta o cursor frmStatus.Hide; Application.MessageBox ('Houve falha no envio deste email... Favor Verificar o endereço do Cliente!', 'Atenção', mb_ok + mb_iconerror); end; dests.Free; email.Free; end else begin Application.MessageBox('Arquivo XML não encontrado!', 'Erro', mb_ok + mb_iconerror); exit; end; except on E: exception do begin Application.MessageBox(PChar('Erro ao criar/imprimir NFe!' + #13 + 'Mensagem: ' + E.message), 'Erro', mb_ok + mb_iconerror); end; end; end; segue a Unit em anexo abraços. email.pas
  14. Sim, Tenta Loadfromstring
  15. Sim isso ocorre na minha aplicação também, estou usando o delphi xe2, Aquele primeiro botão retorna o número de série normal, mas o segundo retorna 01.
  16. Boa note O ACBrNFe_Exemplo não esta pegando o numero de serie correto do certificado esta retornando apenas o numero 01 mais alguém com esse problema? segue a imagem
  17. Boa noite estou testando o ACBrNFe_Exemplo para envio de e-mail do xml, e esta me dando o seguinte erro SMTP Error: Unable to Login , o mais estranho é que uso uma Unit que eu fiz para envio de e-mail e envia 100%. o que será que pode ser?
  18. na verdade o código final ficou assim var Handle, HandleId: THandle; // Evita carga dupla da aplicacao begin Handle := CreateMutex(nil, True, 'Dfox'); if GetLastError = ERROR_ALREADY_EXISTS then begin MessageDlg('O Sistema Dfox já está em execução', mtInformation, [mbOK], 0); HandleId := FindWindow('TfrmPrincipal',nil); if not IsWindowVisible(Handle) then begin ShowWindow(HandleId, SW_RESTORE); SetForegroundWindow(HandleId); end; if Handle <> 0 then CloseHandle(Handle); Application.Terminate; exit; end; end;
  19. de momento consegui resolver assim var MutexHandle: THandle; hwind:HWND; MutexHandle := CreateMutex(nil, True, 'Dfox'); if MutexHandle <> 0 then begin if GetLastError = ERROR_ALREADY_EXISTS then begin MessageDlg('O Sistema Dfox já está em execução', mtInformation, [mbOK], 0); CloseHandle(MutexHandle); hwind := 0; repeat hwind := FindWindowEx(0,hwind,'TApplication','TfrmPrincipal'); until (hwind<>Application.Handle); if (hwind<>0) then begin ShowWindow(hwind,SW_SHOWNORMAL); SetForegroundWindow(hwind); end; Halt; end end;
  20. Daniel valeu pela força, a função não deu certo!
  21. boa tarde tenho o seguinte código no meu sistema para evitar abrir varias instancias var Handle: THandle; begin Application.Initialize; // Evita carga dupla da aplicacao begin Handle := CreateMutex(nil, True, 'Dfox'); if GetLastError = ERROR_ALREADY_EXISTS then begin MessageDlg('O Sistema Dfox já está em execução', mtInformation, [mbOK], 0); if not IsWindowVisible(Handle) then begin ShowWindow(Handle, SW_RESTORE); SetForegroundWindow(Handle); end; if Handle <> 0 then CloseHandle(Handle); Application.Terminate; exit; end; end; ele funciona bem, mas não restara o sistema com o comando ShowWinow alguém poderia me dar uma luz?
  22. Digo as configurações não deveria ser 5 6 e 8 de acordo com a nova mudança?
  23. segue em anexos. Screenshot_1.png com configuração antiga, Screenshot_2.png com configuração atual
  24. Daniel tranquilo! mas o fato é que o componente ACBrNFeDANFCEFR1 não segue o padrão da mudança de margens continua como antigamente, mas está tudo certo.
  25. Sim, mas o bom seria se o componente já tivesse com a configuração de medidas correta para o relatório, assim não causaria dúvidas.
×
×
  • 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.