Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicacion con contador de inactividad (https://www.clubdelphi.com/foros/showthread.php?t=64152)

Kenobi 19-03-2009 16:08:45

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 ....

roman 19-03-2009 17:17:49

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


La franja horaria es GMT +2. Ahora son las 08:48: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