Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Bloquear aplicación por inactividad

Hola compañeros, se me ha ocurrido este caso y quisiera aplicarlo a mi sistema, y es que cuando el usuario no está utilizando el sistema, ya sea, abriendo forms, click a botones, consulta de datos y que en un tiempo determinado vamos a decir en 5 minutos me salga una ventana de login encima de la aplicación como una medida de seguridad en caso que el usuario deba pararse e ir al baño, no se si me entendieron, alguno conoce algun truco o codigo?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 05-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Hola.

Pues yo hice eso una vez, de esta manera:

-Creo una variable global contador, y en FormCreate la inicializo a cero.
-Pongo un Timer, Interval 60000, que en OnTimer incremente el valor de dicha variable.
-Creo un procedure que resetea la variable (y puede que haga algo más), lo llamo siempre que hago algo (clicks en los menús, escribir...).
-En el evento OnTimer, comprobar si el contador supera al tiempo máximo de espera (en minutos), y si es así, llamar a un procedimiento de Bloquear (si el programa se bloquea por no estar siendo usado, pues ya puedes añadir la opción de que el usuario lo bloquee a placer antes de ausentarse).


Salu2

P.D.: Mira en "Temas similares", más abajo
Responder Con Cita
  #3  
Antiguo 06-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Bueno, gracias a ixMike por su ayuda pude hacer el siguiente codigo (aunque es mejorable, pero sirve):

Código Delphi [-]
var
  Incio: TIncio(Form);
  Contador: Integer;

procedure Tincio.FormCreate(Sender: TObject);
var Contador, TiempoBloqueo: Integer;
begin
  Contador:=0;  
end;

en el OnTimer del Timer:

procedure Tincio.Timer1Timer(Sender: TObject);
begin
Inc(Contador);
if Contador = 5 then
  begin
    ShowMessage('El sistema se bloqueó');
  end;
end;

en el OnMessage de un ApplicationEvents:

procedure Tincio.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
if
  ((Msg.message >= WM_MOUSEFIRST) and (Msg.message <= WM_MOUSELAST))
  or
  (Msg.message >= WM_KEYFIRST) and (Msg.message <= WM_KEYLAST)
  then
    begin
      Contador := 0;
    end;

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 06-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Con el personal esto hace mejor efecto:
Código Delphi [-]
var
  Incio: TIncio(Form);
  Contador: Integer;

procedure Tincio.FormCreate(Sender: TObject);
var Contador, TiempoBloqueo: Integer;
begin
  Contador:=0;  
end;

en el OnTimer del Timer:

procedure Tincio.Timer1Timer(Sender: TObject);
begin
Inc(Contador);
if Contador = 5 then
  begin
    MessageBox(Handle, 
             PChar('Si este G..... No viene en cinco minutos esta despedido.' + #13#10 + 
                   'Ahh, y que no me venga con cuentos de que le dolía el estomago.'), 
             PChar('Sistema bloqueado'),
             MB_OK + MB_ICONEXCLAMATION + MB_DEFBUTTON1 + MB_APPLMODAL);
  end;
end;

en el OnMessage de un ApplicationEvents:

procedure Tincio.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
if
  ((Msg.message >= WM_MOUSEFIRST) and (Msg.message <= WM_MOUSELAST))
  or
  (Msg.message >= WM_KEYFIRST) and (Msg.message <= WM_KEYLAST)
  then
    begin
      Contador := 0;
    end;
Saludos
Responder Con Cita
  #5  
Antiguo 06-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Código Delphi [-]
if Contador = 5 then
  begin
    MessageBox(Handle, 
             PChar('Si este G..... No viene en cinco minutos esta despedido.' + #13#10 + 
                   'Ahh, y que no me venga con cuentos de que le dolía el estomago.'), 
             PChar('Sistema bloqueado'),
             MB_OK + MB_ICONEXCLAMATION + MB_DEFBUTTON1 + MB_APPLMODAL);
  end;

Jajaja, esa estuvo buena, lo voy a poner despues de cada n veces que sale el mensaje.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 06-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Caral
Si este G..... No viene en cinco minutos esta despedido.
'Ahh, y que no me venga con cuentos de que le dolía el estomago.
Mas sabe el diablo por VIEJO KBRON que por diablo,

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Bloquear aplicacion despues de cierto tiempo Marcela Conexión con bases de datos 26 16-04-2017 23:47:23
Cerrar ventana a los 10 min. de inactividad jamonete2 OOP 4 10-06-2005 18:18:53
Detectar paso a inactividad oworty API de Windows 2 07-11-2004 14:22:17
Desconexion de la aplicacion por inactividad utilizando META mamen .NET 10 08-09-2004 14:52:52
Desconexion de la aplicacion por inactividad mamen .NET 8 14-07-2004 08:32:42


La franja horaria es GMT +2. Ahora son las 20:04:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi