Page 1 of 1

TIME GET?

Posted: Fri Aug 22, 2008 3:00 pm
by Dorneles
Desde el momento de poner en un GET, si no entró NANDA para obtener en 30 segundos, la aplicación desencadenan una acción?

Posted: Fri Aug 22, 2008 7:40 pm
by Antonio Linares
Eso es lo que quieres hacer ó lo que te está ocurriendo ?

Posted: Fri Aug 22, 2008 7:52 pm
by Dorneles
Tengo que hacer una pantalla de protección.
¿Necesito un ejemplo.

Posted: Fri Aug 22, 2008 8:04 pm
by Vladimir Zorrilla
Ponle un timer que se inicialize con el evento bkeydown del get
de esa manera cuando se digia su contador no llega al limite.
Y si no se hace nada pasado los 30 seg arroje un formulario protector

Posted: Fri Aug 22, 2008 8:10 pm
by Dorneles
¿Tiene usted algún ejemplo?

Posted: Fri Aug 22, 2008 9:47 pm
by Willi Quintana
Usa el protectoer de pantalla del windows con una contraseña, lo pones en 30 seg.

Salu2

Posted: Sat Aug 23, 2008 3:22 am
by Dorneles
Hola, si quiere utilizar la protección de las ventanas de la pantalla?, Que será el FiveWin o xh, no lo está haciendo?

Tengo dentro de mi app, para tener control sobre el cuadro de diálogo.

http://img148.imageshack.us/my.php?image=safpdvxc3.jpg

Posted: Sat Aug 23, 2008 8:56 am
by Antonio Linares
Aqui tienes un ejemplo funcionando:

Code: Select all

#include "FiveWin.ch" 

static nTime := 0

function Main() 

   local oDlg, oSay, oGet, cTest := Space( 10 ) 

   DEFINE DIALOG oDlg TITLE "Test" 

   @ 0.5, 8 SAY oSay PROMPT "Elapsed time: " + AllTrim( Str( nTime ) ) + " secs."
   
   @ 3, 7 GET oGet VAR cTest PASSWORD
   
   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT BuildTimer( oDlg, oSay, oGet )

return nil 

function BuildTimer( oDlg, oSay, oGet )

   local oTmr
   
   DEFINE TIMER oTmr OF oDlg ;
      ACTION ( nTime++, oSay:Refresh(), If( nTime > 29, ScreenSaver(),)) INTERVAL 1000

   ACTIVATE TIMER oTmr
   
   oGet:bKeyDown = { | nKey | nTime := 0, nKey }
   
return nil   

function ScreenSaver()

   static oDlg

   nTime = 0

   if oDlg == nil

      DEFINE DIALOG oDlg STYLE WS_VISIBLE COLOR "W/B" SIZE GetSysMetrics( 0 ), GetSysMetrics( 1 )
   
      @ 10, 10 SAY "This is a screensaver" COLOR "W/B"
   
      oDlg:bKeyDown = { || oDlg:End() }
   
      ACTIVATE DIALOG oDlg ;
         ON CLICK oDlg:End()
         
      oDlg = nil
      nTime = 0
   endif      
   
return nil      

Posted: Mon Aug 25, 2008 9:06 am
by Antonio Linares
Esta versión oculta la barra de tareas y el botón de inicio (en Vista):

Code: Select all

function ScreenSaver()

   static oDlg

   nTime = 0

   if oDlg == nil

      ShowWindow( FindWindow( "Shell_TrayWnd", "" ), 0 ) // Taskbar 
      ShowWindow( FindWindow( "Button", "Start" ), 0 ) // Vista round button

      DEFINE DIALOG oDlg STYLE WS_VISIBLE COLOR "W/B" SIZE GetSysMetrics( 0 ), GetSysMetrics( 1 )
   
      @ 10, 10 SAY "This is a screensaver" COLOR "W/B"
   
      oDlg:bKeyDown = { || oDlg:End() }
   
      ACTIVATE DIALOG oDlg ;
         ON CLICK oDlg:End()

      ShowWindow( FindWindow( "Shell_TrayWnd", "" ), 1 ) 
      ShowWindow( FindWindow( "Button", "Start" ), 1 ) 
         
      oDlg = nil
      nTime = 0
   endif      
   
return nil