Jump to content
Fivewin Brasil

gilmer

Administrador
  • Posts

    3,036
  • Joined

  • Last visited

  • Days Won

    34

Everything posted by gilmer

  1. http://www.techtudo.com.br/noticias/noticia/2015/11/tensorflow-inteligencia-artificial-do-google-tradutor-agora-e-open-source.html
  2. Bom Dia, Com a API do Google Map você consegue
  3. Bom Dia Manifestação do destinatário, de uma olhada sobre isto
  4. Verifique o exemplo fivedit.prg ele tem exemplo como usa o estilo 2015, inclusive o menu também tem estilo
  5. Bom Dia Não tem como usar FW e QT junto, tem que usar um deles, sendo que o QT irá deixar multiplataforma como falado.
  6. Harbour é apenas hbssl.lib e as 2 que eu passei para você,verifique se existe realmente as libs.
  7. Estes erros é falta das libs que falei.
  8. Faltas as libs do OpenSSL (libeay32.lib e ssleay32.lib)
  9. Segue um exemplo em Harbour usando SSL, necessário ter a lib HBSSL.LIB (este exemplo é só para uso de servidores POP que necessitam de SSL, a maioria ) #require "hbssl" #require "hbtip" REQUEST __HBEXTERN__HBSSL__ Function Main() LOCAL oPop, oPart, aParts, oTIpMail, aEmails, i LOCAL cUser :="login@server.com",cPass := "suasenha" Local oUrl1 ? tip_SSL() wait cUser := StrTran( cUser, "@", "&at;" ) oUrl1 := tUrl():New( "pops://" + cUser + ":" + cPass + "@pop.mail.yahoo.com.br" ) oUrl1:cUserid := Strtran( cUser, "&at;", "@" ) opop:= tIPClientPOP():New( oUrl1, .f. ) IF .NOT. oPop:open() ? "Connection error:", oPop:lastErrorMessage() QUIT ELSE aEMails := oPop:retrieveAll(.f.) oPop:close() ENDIF ? "numero tota de e-mails",Len( aEMails ) wait FOR i:=1 TO Len( aEMails ) oTIpMail := aEmails ? i ? "-------------------------------------------" ? oTIpMail:getFieldPart( "From" ) ? oTIpMail:getFieldPart( "Subject" ) ? oTIpMail:getBody() wait /*IF oTIpMail:isMultiPart() // Retrieve all parts of a multipart message aParts := oTIpMail:getMultiParts() FOR EACH oPart IN aParts IF .NOT. Empty( oPart:getFileName() ) // This is a file attachment. Store it in the TMP folder. IF oPart:detachFile( "C:\lixo\" ) ? "File written: C:\lixo\" + oPart:getFileName() ENDIF ELSE ? oPart:getBody() ENDIF NEXT ELSE // simple mail message ? oTIpMail:getBody() ENDIF*/ NEXT RETURN Nil
  10. Ontem fazendo testes com Harbour tive total sucesso com envio e recebimento de e-mail com uso de SSL, sendo que este é o maior problema para envios de e-mails, porem, para que usa xharbour, existe uma DLL paga que resolve totalmente estes problemas, poderia ser uma solução, até verificar com o xharbour o tratamento de SSL, se não tiver esta "fácil" de implementar Falta tempo! kkkkkkkk Abaixo como usar a DLL da http://www.marshallsoft.com/ /* OBS: #DEFINE SEE_KEY_CODE (Obter esse registro junto ao fornecedor DLL) Site para aquisição : http://www.marshallsoft.com/ Quando trial, ao vencer é necessário baixar novamnete as DLL's e colocar na pasta de origem, neste caso definido em " DIRLOCAL " */ #include "Fivewin.ch" // envio de email DLL SEE32 #DEFINE SEE_LOG_FILE 20 #DEFINE SEE_SMTP_PORT 15 #DEFINE SEE_ENABLE_ESMTP 29 #DEFINE SEE_SET_SECRET 57 #DEFINE SEE_SET_USER 58 #DEFINE SEE_QUOTED_PRINTABLE 8 #DEFINE QUOTED_OFF 0 #DEFINE QUOTED_PLAIN 1 #DEFINE QUOTED_HTML 2 #DEFINE SEE_KEY_CODE 999999 // Key de REGISTO pra envio do email #DEFINE DIRLOCAL "C:\EMAIL" //-------------------------------------------------------------------------------------------------// Function main() Local cEmailTO,cEmailSEND,cSenhaEmail,cAssunto,cSmtp,nPortaSmtp,cMensagemEmail,cArquivoEnvio Public hDLLmail ?'compilou' cEmailSEND := "xml@hotmail.com.br" cSenhaEmail := "********" cSmtp := "smtp.live.com" nPortaSmtp := 567 cAssunto := "Teste de Email" cEmailTO := "email@destinatario.com.br" cMensagemEmail := "Ola,"+CRLF+"Tudo bem com você." // Se não conter anexo, enviar( cArquivoEnvio = "" ) cArquivoEnvio := DIRLOCAL+"\teste.txt" If EnvioEmail(cEmailTO,cEmailSEND,cSenhaEmail,cSmtp,nPortaSmtp,cAssunto,cMensagemEmail,cArquivoEnvio) MsgInfo("Email Enviado com sucesso!") Endif Return Nil //----------------------------------------// // Envio de Arquivo por email Function EnvioEmail(cEmailTO,cEmailSEND,cSenhaEmail,cSmtp,nPortaSmtp,cAssunto,cMensagemEmail,cArquivoEnvio) Local N,Code,KeyCode,FileName LOCAL gLocalDir //'local directory' LOCAL gLogFile //'log file' LOCAL gSmtpUser //'SMTP user' LOCAL gSmtpPass //'SMTP password' LOCAL gSmtpHost //'SMTP server ' LOCAL gLogPathName //'log file name ' LOCAL gEmailDir //'email Directory ' LOCAL gAttachDir //'attachmenst diretory' LOCAL gSmtpPort //'SMTP server port - normally 465 or 25.' LOCAL gProxyPort //'proxy port (to contact proxy on)' LOCAL gProxyDir //'proxy server directory' LOCAL gProxyExe //'proxy server executable' LOCAL gProxyCert //'proxy server certificate (PEM format)' LOCAL gEmailTo //'recipient ' LOCAL gEmailFrom //'sender' LOCAL gEmailSubj //'subject' LOCAL gEmailMsg //'message' LOCAL gEmailAttach //'attachment filenames' LOCAL Buffer,FileSet,AttachStr LOCAL oSmtp,aPorta,h3 Default cAssunto := "Sem Assunto",cMensagemEmail :="" cEmailTO :=Alltrim(cEmailTO) cEmailSEND :=Alltrim(cEmailSEND) cSenhaEmail:=Alltrim(cSenhaEmail) cSmtp :=Alltrim(cSmtp) if Empty(cEmailSEND);Msginfo('Email de envio não definido',"Atenção");Return .F.;Endif if Empty(cSenhaEmail);Msginfo('Senha de email não definido',"Atenção");Return .F.;Endif if Empty(cSmtp);Msginfo('Falha ao carregar SMTP de email',"Atenção");Return .F.;Endif if Empty(nPortaSmtp);Msginfo('Porta SMTP de email não definido',"Atenção");Return .F.;Endif // Carrega a DLL na memória if !File(DIRLOCAL+'\SEE32.DLL') MsgInfo("SEE32.DLL não encontrada na pasta de origem, Verifique","Atenção") Return .F. Endif ?m->hDLLmail:=loadLibrary(DIRLOCAL+'\SEE32.DLL') // Variaveis de Envio *** BEG-PROGRAMMER: Edit the following lines *** gLocalDir := DIRLOCAL //' local directory (ends with \) gProxyPort := 8801 //' proxy port (to contact proxy on) gProxyDir := DIRLOCAL+"\SSL\" //' proxy server directory gProxyExe := DIRLOCAL+"\SSL\stunnel.exe" //' proxy server executable gProxyCert := DIRLOCAL+"\SSL\stunnel.pem" //' proxy server certificate (PEM format) gSmtpPort := nPortaSmtp // ' SMTP server port - normally 25 or 587. gEmailSubj := cAssunto // ' email subject gEmailMsg := cMensagemEmail // Corpo do Email gSmtpHost := cSmtp // ' SMTP server name Exemplo SMTP.GMAIL.COM.BR gSmtpUser := cEmailSEND // Email origem de envio gSmtpPass := cSenhaEmail // Senha gEmailFrom := "<"+cEmailSEND+">" // Email Envio gEmailTo := "<"+cEmailTO+">" // ' Email Destinatario ? //Conexão inicial //' attach SEE KeyCode := SEE_KEY_CODE sysrefresh() MsgRun('Iniciando conexão','Aguarde...',{||Code:= seeAttach(1, KeyCode)}) sysrefresh() If Code < 0 MsgInfo ("Error " + Str(Code) + " attaching SEE") Code:= seeClose(0) FreeLibrary(m->hDLLmail) Code := seeRelease() Return .f. Endif MsgRun('validando servidor proxy','Aguarde...',{||Code :=seeSetProxySSL(0, 1, gProxyDir, gProxyCert, gProxyExe)}) sysrefresh() If Code < 0 //' error in format ShowError(Code, "Cannot set proxy") Code:= seeClose(0) FreeLibrary(m->hDLLmail) Code := seeRelease() Return .f. EndIf // SSL MsgRun('Habilitando segurança servidor SLL ','Aguarde...',{||Code := seeSmtpConnectSSL(0, gProxyPort, gSmtpPort, gSmtpHost, gSmtpUser, gSmtpPass, gEmailFrom, gEmailFrom, Chr(0)) }) sysrefresh() If Code < 0 ShowError(Code, "Problema de autenticação,Verifique email/Senha") Code:= seeClose(0) FreeLibrary(m->hDLLmail) Code := seeRelease() Return .f. Endif AttachStr:=cArquivoEnvio //' send the email MsgRun('Enviando email.....','Aguarde...',{||Code:= seeSendEmail(0, gEmailTo, Chr(0), Chr(0), gEmailSubj, gEmailMsg, AttachStr)}) If Code < 0 //' error attempting to send email ShowError(Code, "seeSendEmail fails ") Code:= seeClose(0) FreeLibrary(m->hDLLmail) Code := seeRelease() Return .f. Endif //' all done Code:= seeClose(0) FreeLibrary(m->hDLLmail) Code := seeRelease() Return .T. //-----------------------------------------// FUNCTION ShowError( ErrCode , ErrText) //-----------------------------------------// Local Code local Buffer Local Temp, Local Buffer:= "SEE Error " + LTrim(Str(ErrCode)) Temp := SPACE(128) Code := seeErrorText(0, ErrCode, Temp, 127) If Code > 0 Buffer := Buffer + CRLF + Left(Temp, Code) EndIf Buffer:= Buffer + CRLF + ErrText MsgInfo(Buffer) Return .T. // declarações DLL Emial para 32 Bytis Dll32 Function seeAttach(NbrChans As LONG, KeyCode As LONG) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeClose( Chan As LONG) AS LONG PASCAL LIB m->hDllMail Dll32 Function seeErrorText( Chan As LONG, Code As LONG, Buffer As STRING, BufLen As LONG) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeIntegerParam(Chan As _INT, Index As _INT, Value As _INT) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeRelease() AS LONG PASCAL LIB m->hDllmail Dll32 Function seeSendEmail( Chan As LONG, Rcpt As STRING, CC As STRING,; BCC As STRING, Subj As STRING, Msg As STRING, Attach As STRING) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeSetProxySSL(ProxyCode As LONG,ProxyFlags As LONG,ProxyDir As STRING, ProxyCert As STRING,ProxyExe As STRING) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeSmtpConnectSSL(Chan As LONG,ProxyPort As LONG,SmtpPort As LONG,SmtpServer As STRING,User As STRING,Pass As STRING, From As STRING,Reply As STRING,ProxyIP As STRING) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeSmtpConnect( Chan As LONG, Server As STRING, From As STRING, Reply As STRING) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeSTRINGParam( Chan As LONG, Index As LONG, Value As STRING) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeTestFileSet(Chan As LONG, FileSet As STRING, Buffer As STRING, BufLen As LONG) AS LONG PASCAL LIB m->hDllmail Dll32 Function seeGetEmailFile(Chan As LONG, MsgNbr As LONG, Filename As STRING, EmailDir As STRING, AttachDir As STRING) AS LONG PASCAL LIB m->hDllmail
  11. Deve ser problemas de rede ou driver da impressora, nunca peguei este problemas com o FastReport
  12. vc esta querendo criar o objeto usando createobject ?
  13. oPrn:nVertRes() // Resolução Vertical oPrn:nHorzRes() // Resolução Horizontal
  14. Coloque alguma imagem para entender a diferença O teste esta sendo feito na mesma impressora ?
  15. O problema de não ficar igual em impressoras diferentes e a resolução da impressora, acaba afetando no tamanho do fonte e tamanho do tamanho do relatório, você precisa criar um calculo para ajustar o fonte conforme a resolução, a classe tprinter tem como retornar a resolução da impressora. Na Danfe.prg eu uso alguns cálculos
  16. Evandro, Como fica no tsbrowse, coloque uma imagem por favor
  17. Desejo a todos clientes e amigos um natal cheio de Paz, Saúde e Harmonia. Em 2017 teremos muitas novidades boas para a comunidade Harbour
  18. Verifique o XML se ele esta pegando certo e se este XML esta dentro dos padrões
  19. Que eu saiba não tem configuração para não apresentar a mensagem e excluir o atalho.
  20. Eu fiz uma declaração a muitos anos para o Eduardo, quem sabe ele tenha ainda. Depois que falar com ele, posto o resultado. Porem, a declaração e bem simples de ser feito oCteUtil := GetActiveObject( "CTe_Util_2G.Util" ) // retornando a versão ? oCteUti:Versao()
  21. Aqui segue o link do componente para envio de e-mail que utilizo http://www.marshallsoft.com/email-component-library.htm
  22. // Exemplo1 do xHarbour #include "hbclass.ch" PROCEDURE Main() LOCAL nStart := Seconds() LOCAL oMyObject := MyClass() LOCAL MethodPtr := HB_ObjMsgPtr( oMyObject, "Count" ) LOCAL xThread CLEAR SCREEN nStart := Seconds() // 1st param is the Startup Function, 2nd. is Self if 1st param is a Method or NIL otherwise, // rest are paramaters to be passed to the Function/Method. StartThread ( @MyThreadFunc(), 2, "1st Thread:", 0, 5000 ) StartThread ( @MyThreadFunc(), 4, "2nd Thread:", 5000, 10000 ) StartThread ( @MyThreadFunc(), 6, "3rd Thread:", 10000, 15000 ) WaitForThreads() @ 8, 0 SAY "Threads Time:" + Str( Seconds() - nStart ) nStart := Seconds() // StartThread() for methods can be called using an already available // Method Pointer or using a method name StartThread ( oMyObject, "Count", 10, "1st Thread:", 0, 5000 ) StartThread ( oMyObject, "Count", 12, "2nd Thread:", 5000, 10000 ) StartThread ( oMyObject, MethodPtr, 14, "3rd Thread:", 10000, 15000 ) WaitForThreads() @ 16, 0 SAY "[METHODS] Threads Time:" + Str( Seconds() - nStart ) nStart := Seconds() MyThreadFunc( 18, "1st Run:", 0, 5000 ) MyThreadFunc( 20, "2nd Run:", 5000, 10000 ) MyThreadFunc( 22, "3rd Run:", 10000, 15000 ) @ 24, 0 SAY "Sequential Time:" + Str( Seconds() - nStart ) Inkey(0) RETURN PROCEDURE MyThreadFunc( nRow, cName, nStart, nMax ) LOCAL i FOR i := nStart TO nMax //@ nRow, 10 SAY cName + Str( i ) // Atomic operation DispOutAt(nRow, 10, cName + Str( i )) NEXT RETURN CLASS MyClass METHOD Count( nRow, cName, nStart, nMax ) ENDCLASS METHOD Count( nRow, cName, nStart, nMax ) CLASS MyClass LOCAL i FOR i := nStart TO nMax //@ nRow, 10 SAY cName + Str( i ) // Atomic operation DispOutAt(nRow, 10, cName + Str( i )) NEXT RETURN NIL // Exemplo 2 * * Complex example of Multi thread usage * * Giancarlo Niccolai * $Id: mtcomplex.prg 9279 2011-02-14 18:06:32Z druzus $ * * Here we have a main thread counting, and some secondary * threads counting too (in different fashons). * A control thread is notified when each secondary * thread finishes, and some of the secondary threads * are killed before they are able to reach the end. * PROCEDURE Main() LOCAL i LOCAL Mutex := HB_MutexCreate() LOCAL Mutex2 := HB_MutexCreate() LOCAL Thread4Handle, MonitorHandle LOCAL bKill := .F. Mutex2 := NIL SET OUTPUT SAFETY ON set color to w+/b CLEAR SCREEN @1,15 SAY "X H A R B O U R - Complex multithreading test" @3,17 SAY "Press any key to terminate in every moment" StartThread ( @ThreadFunc(), 10, "1st. Thread", 100, Mutex ) StartThread ( @ThreadFunc(), 11, "2nd. Thread", 250, Mutex ) /* Test of the { codeblock } grammar */ StartThread ( { | nRow, cName, nLoops, Mtx| ThreadFunc(nRow, cName, nLoops, Mtx) } ; , 12, "3rd. Thread", 300, Mutex ) Thread4Handle := StartThread( @ThreadFunc(), 13, "4th. Thread", 700, Mutex ) /* Notice the "function name" grammar */ MonitorHandle := StartThread ( "MonitorFunc", Mutex ) *MonitorHandle := StartThread ( @MonitorFunc() , Mutex ) StartThread ( @FourthMonitor(), Thread4Handle, Mutex ) FOR i := 0 TO 500 @ 14, 10 SAY 'Main Thread:' + Str( i, 4 ) IF i == 100 StopThread( Thread4Handle ) @ 14, 27 SAY "(Killed 4th. Thread!)" ENDIF HB_GCAll( .T. ) ThreadSleep( 30 ) IF Inkey() != 0 bKill := .T. EXIT ENDIF NEXT IF bKill @17, 10 SAY 'Killing all threads on user requests ' KillAllThreads() ELSE @ 17, 10 SAY 'Cycle over, stopping Monitor ' KillThread( MonitorHandle ) @ 17, 10 SAY 'Cycle over, Monitor Stopped ' ENDIF @18, 10 SAY 'Waiting for thread termination ' WaitforThreads() @ 19, 10 SAY 'Program over - press a key ' Inkey( 0 ) @ 24, 00 PROCEDURE ThreadFunc( nRow, cName, nMax, Mutex ) LOCAL i FOR i := 0 TO nMax @ nRow, 10 SAY cName + Str( i, 4 ) WaitForThis( nRow ) // calling a proc inside a thread NEXT Notify( Mutex, cName ) @ nRow, 10 SAY cName + ': DONE '+ space(20) RETURN PROCEDURE WaitForThis( nRow ) ThreadSleep( 30 ) RETURN PROCEDURE MonitorFunc( Mutex ) LOCAL cName @ 5, 5 SAY "Entering Monitor Thread" @ 6, 5 SAY "->> Thread finished:" DO WHILE .T. cName := Subscribe( Mutex ) IF cName != NIL @ 6, 26 SAY cName ELSE @ 6, 26 SAY "Unknown .. " ENDIF ThreadSleep( 1500 ) @ 6, 26 SAY " " ENDDO RETURN PROCEDURE FourthMonitor( ThreadHandle, Mutex ) @ 8, 5 SAY "Waiting for 4th. Thread to finish..." JoinThread( ThreadHandle ) @ 8, 5 SAY "FourthMonitor: 4th. Thread Finished/Killed!" RETURN
  23. Marcio/Marca Faça como em outras ferramentas ( inclusive VB, Delphi, etc...), use componentes pagos, para isto que eles existem, até no C# que já existe muito coisa nele, existe componentes para comprarem, o mundo de desenvolvimento não é mais igual da era Pascal, Clipper, Cobol, que a ferramenta tinha tudo que precisava na época, se bem se analisar, não existia metade de flexibilidade global que tem hoje! Aqui na Sysfar usamos componente pago para envio de e-mail, sem nenhum problema! WebCam antigamente tinha um recurso do próprio Windows, que era usado pela maioria das linguagens, à partir de algumas versões do windows começou a ser bloqueado, mas também existe diversos componentes pagos e alguns free que devem ser declarado em C ou a DLL, a questão é ler a documentação e fazer. Boleto! existe diversas ferramentas abertas para emissão de boleto, mas não tem como isto estar na ferramenta! inclusive boleto você não precisa necessariamente usar ferramentas de terceiros, já que lendo o manual do banco e utilizando a tprinter ou de preferencia um gerador de relatório acaba construindo com certa facilidade
  24. Estou enviando os comandos para você, mas você deverá ler o manual da epson para saber como usa.
×
×
  • Create New...