Jump to content
Fivewin Brasil

kapiaba

Membros
  • Posts

    24,540
  • Joined

  • Last visited

  • Days Won

    282

Posts posted by kapiaba

  1. Entendi o funcionamento do novo forum?
    
    Veja se ajuda. Você pode ir mostrando o tempo de espera no Botão com o Refresh(), eu acho...
    
    // tinativo.prg - By William Adami
    // exemplo do uso da classe Tinativo
    // Apos um tempo de inatividade do mouse
    // e do teclado chama uma funcao qualquer.
    
    #include "fivewin.ch"
    
    STATIC oWnd
    
    //************
    
    FUNCTION Main()
    
       LOCAL nTempo_espera, cNome_funcao, lTimercontinua
    
       // Tempo a ser esperado ate chamar a funcao
       // -> 1 hora tem 3600 segundos.
       nTempo_espera := 10  // segundos. 
    
       // nome da funcao a ser chamada quando
       // chegar no tempo de espera
       cNome_funcao := "LOGOFF()"   
       // se apos executar a funcao , continua
       // monitorando a inatividade do mouse e teclado.
       lTimercontinua := .F.
    
       define window oWnd title "Teste de teclado e mouse"
    
       activate window oWnd ;
          ON INIT tinativo():new( nTempo_espera, cNome_funcao, lTimerContinua )
    
    RETURN NIL
    
    FUNCTION LOGOFF()
    
       // msgalert( "AQUI ENTRA SUA FUNCAO DE LOGOFF !", "AVISO" )
    
       IF MsgYesNo( OemToAnsi( "ATEN€ÇO USUµRIO:                       " )+CRLF+ ;
                    OemToAnsi( "PROTEJA OS BANCOS DE DADOS DO PROGRAMA." )+CRLF+ ;
                    OemToAnsi( "SE NÇO ESTIVER USANDO O WINORCAM.EXE,  " )+CRLF+ ;
                    OemToAnsi( "DESLIGUE-O PARA NÇO CORRER RISCOS.     " )+CRLF+ ;
                    OemToAnsi( "POSSO DESLIGAR O PROGRAMA? <S> ou <N>??" ),      ;
                    OemToAnsi( "AVISO PARA DESLIGAR O WINORCAM.EXE...  " ) )
    
          //--Fecha o Programa Definitivamente
          LIBERA_TUDO()  // ESTA EM WINORCAM.PRG
    
          // QUIT
    
       ENDIF
    
    RETURN NIL
    
    //   tinativo.prg
    
    #include "fivewin.ch"
    
    CLASS TINATIVO
    
       DATA nTimeInpAntes
       DATA nTimeInpDepois
       DATA cTimeAtu
       DATA nTempo
       DATA oTimerTime
       DATA cFunc
       DATA lContinuar
    
       METHOD NEW( nTime, cFuncao, lContinua )  CONSTRUCTOR
    
       METHOD ver_tempo()
    
    ENDCLASS
    
    METHOD new( ntime, cFuncao, lContinua ) CLASS TINATIVO
    
       ::cfunc := cfuncao
       ::ntempo := ntime
       ::lContinuar := lContinua
       ::oTimerTime := TTimer():New( 1000, { || ::VER_TEMPO() } )
       ::oTimerTime:Activate()
       ::cTimeAtu := time()
       ::nTimeInpAntes := getInputState()    // 0 = erro
    
    RETURN self
    
    METHOD VER_TEMPO CLASS TINATIVO
    
       LOCAL AUX
    
       ::nTimeInpDepois := getInputState()
    
       IF ( ::nTimeInpDepois - ::nTimeInpAntes ) > 0
    
          ::nTimeInpAntes := getInputState()
    
          ::cTimeAtu := time()
    
       ENDIF
    
    
       IF ( CONVTIME( time() ) - CONVTIME( ::cTimeAtu ) ) > ::ntempo
    
          ::oTimerTime:DeActivate()
    
          aux := ::cfunc
       
          // aqui executa a funcao
    
          &aux
    
          if ::lContinuar
    
             ::oTimerTime:Activate()
             ::cTimeAtu := time()
    
          ENDIF
    
    
       ENDIF
    
    RETURN NIL
    
    FUNCTION CONVTIME( ZZ )
    
       LOCAL Z
    
       Z := ( VAL( LEFT(ZZ,2 ) ) * 360 ) + ( VAL( SUBSTR(ZZ,4,2 ) ) * 60 ) + ;
              VAL( RIGHT( ZZ,2 ) )
    
    RETURN Z
    
    //*----------------------------------------------------------------------
    #pragma BEGINDUMP
    #define _WIN32_WINNT 0x0500
    #define WINVER 0x0500
    #include "windows.h"
    #include "hbapi.h"
    HB_FUNC( GETINPUTSTATE )
    {
    LASTINPUTINFO lpi;
    lpi.cbSize = sizeof(LASTINPUTINFO);
    if (!GetLastInputInfo(&lpi))
    {
    hb_retni(0);
    }
    hb_retni(lpi.dwTime);
    }
    #pragma ENDDUMP
     
    // FIN / END
    
    Regards, saludos.
    

     

  2. Veja se ajuda. Você pode ir mostrando o tempo de espera no Botão com o Refresh(), eu acho...

    [code]
    // tinativo.prg - By William Adami
    // exemplo do uso da classe Tinativo
    // Apos um tempo de inatividade do mouse
    // e do teclado chama uma funcao qualquer.

    #include "fivewin.ch"

    STATIC oWnd

    //************

    FUNCTION Main()

       LOCAL nTempo_espera, cNome_funcao, lTimercontinua

       // Tempo a ser esperado ate chamar a funcao
       // -> 1 hora tem 3600 segundos.
       nTempo_espera := 10  // segundos. 

       // nome da funcao a ser chamada quando
       // chegar no tempo de espera
       cNome_funcao := "LOGOFF()"   
       // se apos executar a funcao , continua
       // monitorando a inatividade do mouse e teclado.
       lTimercontinua := .F.

       define window oWnd title "Teste de teclado e mouse"

       activate window oWnd ;
          ON INIT tinativo():new( nTempo_espera, cNome_funcao, lTimerContinua )

    RETURN NIL

    FUNCTION LOGOFF()

       // msgalert( "AQUI ENTRA SUA FUNCAO DE LOGOFF !", "AVISO" )

       IF MsgYesNo( OemToAnsi( "ATEN€ÇO USUµRIO:                       " )+CRLF+ ;
                    OemToAnsi( "PROTEJA OS BANCOS DE DADOS DO PROGRAMA." )+CRLF+ ;
                    OemToAnsi( "SE NÇO ESTIVER USANDO O WINORCAM.EXE,  " )+CRLF+ ;
                    OemToAnsi( "DESLIGUE-O PARA NÇO CORRER RISCOS.     " )+CRLF+ ;
                    OemToAnsi( "POSSO DESLIGAR O PROGRAMA? <S> ou <N>??" ),      ;
                    OemToAnsi( "AVISO PARA DESLIGAR O WINORCAM.EXE...  " ) )

          //--Fecha o Programa Definitivamente
          LIBERA_TUDO()  // ESTA EM WINORCAM.PRG

          // QUIT

       ENDIF

    RETURN NIL

    //   tinativo.prg

    #include "fivewin.ch"

    CLASS TINATIVO

       DATA nTimeInpAntes
       DATA nTimeInpDepois
       DATA cTimeAtu
       DATA nTempo
       DATA oTimerTime
       DATA cFunc
       DATA lContinuar

       METHOD NEW( nTime, cFuncao, lContinua )  CONSTRUCTOR

       METHOD ver_tempo()

    ENDCLASS

    METHOD new( ntime, cFuncao, lContinua ) CLASS TINATIVO

       ::cfunc := cfuncao
       ::ntempo := ntime
       ::lContinuar := lContinua
       ::oTimerTime := TTimer():New( 1000, { || ::VER_TEMPO() } )
       ::oTimerTime:Activate()
       ::cTimeAtu := time()
       ::nTimeInpAntes := getInputState()    // 0 = erro

    RETURN self

    METHOD VER_TEMPO CLASS TINATIVO

       LOCAL AUX

       ::nTimeInpDepois := getInputState()

       IF ( ::nTimeInpDepois - ::nTimeInpAntes ) > 0

          ::nTimeInpAntes := getInputState()

          ::cTimeAtu := time()

       ENDIF


       IF ( CONVTIME( time() ) - CONVTIME( ::cTimeAtu ) ) > ::ntempo

          ::oTimerTime:DeActivate()

          aux := ::cfunc
       
          // aqui executa a funcao

          &aux

          if ::lContinuar

             ::oTimerTime:Activate()
             ::cTimeAtu := time()

          ENDIF


       ENDIF

    RETURN NIL

    FUNCTION CONVTIME( ZZ )

       LOCAL Z

       Z := ( VAL( LEFT(ZZ,2 ) ) * 360 ) + ( VAL( SUBSTR(ZZ,4,2 ) ) * 60 ) + ;
              VAL( RIGHT( ZZ,2 ) )

    RETURN Z

    //*----------------------------------------------------------------------
    #pragma BEGINDUMP
    #define _WIN32_WINNT 0x0500
    #define WINVER 0x0500
    #include "windows.h"
    #include "hbapi.h"
    HB_FUNC( GETINPUTSTATE )
    {
    LASTINPUTINFO lpi;
    lpi.cbSize = sizeof(LASTINPUTINFO);
    if (!GetLastInputInfo(&lpi))
    {
    hb_retni(0);
    }
    hb_retni(lpi.dwTime);
    }
    #pragma ENDDUMP
     
    // FIN / END
    [/code]

    Regards, saludos.

  3. https://forums.fivetechsupport.com/viewtopic.php?f=3&t=44003&sid=4ffc8a1e244e2b038b38f640da6ab48e

     

    Inserting a string with CRLF into a single-line TGet.


    [code]
    // C:\FWH/SAMPLES\CSTRING2.PRG By Mister Nages.

    #include "FiveWin.ch"

    #Define CLR_MSPURPLE   nRGB( 0,   120, 215 )

    FUNCTION Main()

       LOCAL oDlg, oGet, oFont, oFnt, cText1, cVar := SPACE(300)
       LOCAL oSay, cSayGet, oSalida

       SkinButtons()

       cText1 := "Teste1 " + Chr( 10 ) + " Teste2" + Chr( 9 ) + " Teste3 " + ;
          Chr( 25 ) + Chr( 13 ) + Chr( 10 )

       cVar    := cText1
       cSayGet := [USE CTRL+V PARA COPIAR O TEXTO OCULTO...]

       DEFINE FONT oFont  NAME "Ms Sans Serif"  SIZE 00, -16 BOLD
       DEFINE FONT oFnt   NAME "Ms Sans Serif"  SIZE 00, -14 BOLD

       DEFINE DIALOG oDlg SIZE 400, 400 PIXEL TRUEPIXEL

       oDlg:lHelpIcon := .F.

       // ASI, ES MEJOR:
       @ 50, 20 GET oGet VAR cVar SIZE 350, 50 PIXEL OF oDlg MEMO FONT oFont UPDATE

       // CTRL+V
       oGet:bKeyDown := {| k | If( k == Asc( "V" ) .AND. ;
            GetKeyState( VK_CONTROL ), CheckCRLF(), ) }

       // other code

       @ 120, 20 SAY oSay VAR cSayGet OF oDlg PIXEL FONT oFnt UPDATE SIZE 350, 20 ;
          COLORS CLR_BLACK, CLR_MSPURPLE

       @ 320, 160 BUTTON oSalida PROMPT "&Salida" SIZE 70, 30 OF oDlg PIXEL       ;
          ACTION( oDlg:End() ) CANCEL

       SET FONT OF oSalida TO oFnt

       ACTIVATE DIALOG oDlg CENTERED

       oFont:End()
       oFnt:End()

    RETURN NIL

    FUNCTION CheckCRLF()

       // LOCAL cText := FW_GetClipboardData()  //???? DEFINE DIALOG??
       LOCAL cText := SPACE(300)

       cText := [TEXTO A COPIAR PARA O GET EM DESTAQUE... ]

       IF ValType( cText ) == "C"

          cText := StrTran( StrTran( cText, CRLF, " " ), Chr( 10 ), " " )

       ENDIF

       FW_CopyToClipboard( cText )

    RETURN NIL

    // FIN / END
    [/code]


    Regards, saludos.

  4. Tente assim. Troque os dados da emagsoftware pelos seus.

    #include "Fivewin.ch"
    	FUNCTION Main()
    	    LOCAL cUrl := "ftp://myuser@aruba.it:mypassword@ftp.emagsoftware.it"
    	    LOCAL oUrl := TUrl():New( cUrl )
    	    LOCAL oFtp := TIpClientFtp():New( oUrl, .T. )
    	    oFtp:Open( cUrl )
    	    ? oFtp:CWD( "/emagsoftware.it" )
    	    ? oFtp:DownloadFile( "email.gif" )
    	    oFtp:Close()
    	RETURN NIL
    

    Regards, saludos.

  5. Você está linkando a TIP.LIB e  SHELL32.lib  no projeto?

    C:\FWH2104\lib\FiveHX.lib            +
    C:\FWH2104\lib\FiveHC.lib            +
    C:\XHBBCC76\lib\vm.Lib               +
    C:\XHBBCC76\lib\rdd.Lib              +
    C:\XHBBCC76\lib\common.Lib           +
    C:\XHBBCC76\lib\rtl.Lib              +
    C:\XHBBCC76\lib\lang.Lib             +
    C:\XHBBCC76\lib\macro.Lib            +
    C:\XHBBCC76\lib\hbsix.Lib            +
    C:\XHBBCC76\lib\dbfntx.Lib           +
    C:\XHBBCC76\lib\PcRepos.Lib          +
    C:\XHBBCC76\lib\dbffpt.Lib           +
    C:\XHBBCC76\lib\dbfcdx.Lib           +
    C:\XHBBCC76\lib\hbzip.Lib            +
    C:\XHBBCC76\lib\hbmzip.Lib           +
    C:\XHBBCC76\lib\zlib.Lib             +
    C:\XHBBCC76\lib\ct.Lib               +
    C:\XHBBCC76\lib\gtgui.Lib            +
    C:\XHBBCC76\lib\hbzebra.Lib          +
    C:\XHBBCC76\lib\codepage.Lib         +
    C:\XHBBCC76\lib\png.Lib              +
    C:\XHBBCC76\lib\pp.Lib               +
    C:\XHBBCC76\lib\tipssl.lib           +
    C:\XHBBCC76\lib\libssl.lib           +
    C:\XHBBCC76\lib\libcrypto.lib        +
    C:\XHBBCC76\lib\tip.Lib              +
    C:\BCC76\lib\cw32.Lib                +
    C:\BCC76\lib\uuid.lib                +
    C:\BCC76\lib\ws2_32.lib              +
    C:\BCC76\lib\import32.lib            +
    C:\BCC76\lib\psdk\msimg32.Lib        +
    C:\BCC76\lib\psdk\odbc32.Lib         +
    C:\BCC76\lib\psdk\rasapi32.Lib       +
    C:\BCC76\lib\psdk\nddeapi.Lib        +
    C:\BCC76\lib\psdk\psapi.Lib          +
    C:\BCC76\lib\psdk\gdiplus.lib        +
    C:\BCC76\lib\psdk\iphlpapi.Lib       +
    C:\BCC76\lib\psdk\shell32.lib        +
    C:\BCC76\lib\psdk\wininet.Lib        +
    C:\BCC76\lib\import32.Lib
    

    Abs.

    Regards, saludos.

     

  6. 16 horas atrás, Jorge Andrade disse:

    Eu  aposto no Teamviewer, uso há mais de 10 anos, antes usava gratuito, depois adquiri um licença vitalícia da versão 9, que atualizou até a 13 e que continua em funcionamento com uso uma licença no celular e duas em cpu's,  fiz assinatura  anual  (Hoje versão 15) que, pago R$ 900,00, onde uso dois acessos por cpu's e um no celular, então se dividir por 12 e por 3, acho que vale a pena.  Os clientes continuam utilizando a versão gratuita, pois é do tipo Pai de Santo (Só recebem a acesso. ahahahaha).

    Agora tenho testado o RustDesk gratuito, mas não chega nem perto do Team.

     

    []s, 

     

    PAAAAAAAARRRRAAAAAAAAAAAAAAAAAA.... KKKKKKKKKKKKKKKKKK

×
×
  • Create New...