Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-03-2009
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Aplicacion con contador de inactividad

Hola amigos, pues bien es lo que quiero, que dado cierto tiempo de inactividad en la aplicacion (definido por mi claro esta) pues application.terminate
digo hay usuario que abren el sistema y mantienen asi una conexion persistente a la base de datos, luego se van a comer y no cierran la aplicacion... una vez lo intente con un timer

algo asi como capturar movimientos de raton o teclado liberando un contador que en caso contrario si llega a un punto critico pues application.terminate

Gracias, seguro que si se puede ....
Responder Con Cita
  #2  
Antiguo 19-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo del timer puede funcionar.

Yo haría algo así:

1. Declara una constante TIMEOUT con el máximo tiempo posible de inactividad (en milisegundos) y una variable StartTime para guardar el tiempo en que se inicia la cuenta)

Código Delphi [-]
const
  TIMEOUT = 90000; // 15 minutos

var
  StartTime: Cardinal;

2. En el evento OnTimer de un Timer comparas el valor de StartTime con el tiempo actual y haces lo que tengas que hacer en caso de que haya transcurrido más tiempo que el indicado por TIMEOUT:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetTickCount() - StartTime > TIMEOUT then
    Close;
end;

3. En el evento OnMessage de un componente TApplicationEvents (pestaña Additional) detectas los mensajes del teclado o del ratón para reiniciar la cuenta:

Código Delphi [-]
procedure TForm1.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
    StartTime := GetTickCount();
end;

// Saludos
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
Cierre de Aplicacion por inactividad Confucio Varios 4 22-04-2008 20:58:41
Bloquear aplicación por inactividad enecumene OOP 19 26-03-2008 17:32:24
Cerrar ventana a los 10 min. de inactividad jamonete2 OOP 4 10-06-2005 18:18:53
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 14:16:39.


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